//----------------------------------------------
//素数计算
#include
#include
using namespace std;
int main()
{
//显示可选项并作选择
cout<<"请按键选择要计算的位数:"< cout<<"A=100 B=1000 C=10000 D=100000 E=99999999"< cout<<"其它键退出"<
ofstream out("save.txt");
unsigned long int count=0;
char gw;
cin>>gw;
switch(gw)
{
case'a':count=100;break;
case'b':count=1000;break;
case'c':count=10000;break;
case'd':count=100000;break;
case'e':count=99999999;break;
default: break;
}
unsigned long int i,a,b,f;
for(i=2;i<=count;i++)//分母循环
{
for(a=2;a<(i+3)/2;a++) //分子循环
{
b=i%a;
if(b==0)break;
f=(i+3)/2-1;
if(f==a)
{
cout< out< }
}
}
}
//---------------------------------------------------------
要求:尽可能多,尽可能快的算出素数。并存在一个文件中。
我想了两种方法:
一种算方法,就是用后面的数挨个除前面的数。用循环。除不尽就放入文件中。但是这种方法虽然简单,但是太慢。
二种的方法,就是只除到一个数的一半。如果没能整除。再写入文件。比前一种方法要快一倍时间。
但是还有一种方法。。就是将算出来的素数放入文件中。然后再挨个调出来除。也就是用要测的数,除以它以前已知的素数。
如果不能整除。就把它写入文件中。。然后他也会成一个被调用的除数去检测其它的数。
注意:我觉得最好不要用数组来存素数。因为它们一般有大小限制。。最好的办法就是对文件进行操作。。但是我不会。
希望闲着无聊的朋友想想这个程序哈。对于跟贴出来的程序,我将一一仔细看。并附上我的意见。
--------------------next---------------------
阅读(1039) | 评论(0) | 转发(0) |