交大C++程序设计机考题目
2012-2013学年第二学期《C++程序设计》上机考试题
质数
质数又称素数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。
编一个程序,从文件读入一个十进制数N,然后判断该数是否是质数。如果N是质数,则输出1;如果N不是质数,则输出0。请把结果输出到文件中。 本问题的解决方案不需要使用大于32位的整型。
程序名称:prime.cpp 输入文件(prime.in)
只有一行,该行只有1个整数N
输出文件(prime.out)
输出只有一行,这一行只包含一个整数,表示N是否是质数。如果N是质数输出1;如果N不是质数,则输出0。
输入样例
234567833
输出样例
1
#include <iostream> #include <fstream>
using namespace std;
class prime{ private: int x; public: int isPrime(int a); void set(); void read(); void write(); };
int prime::isPrime(int a){ int i; for(i = 2; i <= a/2; i ++) if(a%i == 0) break; return i>a/2; }
void prime::set(){ cout<<"输入数字:"; cin>>x; ofstream wst("prime.in"); if(!wst){ cout<<"文件没有正确建立文件 "<<endl; return; } wst<<x; wst.close(); }
void prime::read(){ ifstream rst("prime.in"); if(!rst){ cout<<"文件打不开 "<<endl; return; } //while(getline(rst,x)) while (!rst.eof()){ rst >> x; } rst.close(); }
void prime::write(){ ofstream wst("prime.out"); if(!wst){ cout<<"文件打不开 "<<endl; return; } if(isPrime(x)){ wst<<1; }else{ wst<<0; } wst.close(); }
int main() { prime p; p.set(); p.read(); p.write(); }