交大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(); }

经验分享 程序员 微信小程序 职场和发展