尿气味很重是什么原因:谁能用c语言篇出素数生成器.

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 04:08:44
编译后最小最快占资源要求最少.
(请列出原代码,注释.和您的联系方式)
位数越大越间单的语句越好.内存不限制.只用普通的加减乘除,禁用开方和指数等中级算法.可用模.我的意思是至少数字的位数是50位.http://download.pchome.net/utility/caculate/17553.html比这个还要快.能行吗?

#include<iostream>
using namespace std;

void main()
{
int i,n,co=0,flag=1;
for(n=2;n<10000&&co<1000;n++)
{
for(i=2;i<=n/2;i++)
if(n%i==0)
{flag=0;
break ;} //判断是不是素数,不是的话就将标志flag设为0;

if(flag==0) //标志为0就跳到下一个数去
{
flag=1;
continue;
}

cout<<n<<" ";
co++;

}

cin.get();
}
//这是我写的一个小程序,可以实现1000个素数的求解,因为对效率有要求,所以建议不要写成函数调用,因为每次的调用和返回值都有较多的开销。当然,我用的是一种很笨的算法,楼主可以采用筛选法,那么在循环的次数上要少很多的,不过这又有另一个问题,就是要将以前的素数全部有备份,那就要使用数组,最有效的当然是动态的数组。很明显,这要加大空间的开销,而且写起来要麻烦一点
如果楼主特别的强调效率的话,可以将n和i设为register变量,这也有一点效
这个程序可以运行,最后一个数为7917

n<10000是什么意思?1万以下的素数有1千个吗?哎...这样还不如把1万以下的素数列举出来存到表里,一个个调出来的好。
把黎曼函数解出来就可以一一对应的写素数啦!不过没人解得来!