Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2342336
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:01:38



//----------------------------------------------
//素数计算

#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) |
给主人留下些什么吧!~~