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<<"文件没有正确建立文件\n"<<endl;
return;
}
wst<<x;
wst.close();
}
void prime::read(){
ifstream rst("prime.in");
if(!rst){
cout<<"文件打不开\n"<<endl;
return;
}
//while(getline(rst,x))
while (!rst.eof()){
rst >> x;
}
rst.close();
}
void prime::write(){
ofstream wst("prime.out");
if(!wst){
cout<<"文件打不开\n"<<endl;
return;
}
if(isPrime(x)){
wst<<1;
}else{
wst<<0;
}
wst.close();
}
int main()
{
prime p;
p.set();
p.read();
p.write();
}