if(n%i==0)
break;}
有这个语句,1002也只要1下
for(n=1;n<=32767;n++)这个语句不好,
其实只要
for(n=1;n*n<=32767;n++)
就可以了
至于32767是不是素数,那先试一下就行
![](/skin/img/sigline.gif)
本人写的一个,感觉效率还算不错,可以很快求出结果来(感觉应该还不到1秒钟,高效率吧~~~)
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include<fstream>
using namespace std;
void main(void)
{
ofstream inOut;
inOut.open("1.txt",ios::out);
int a[32768];
for(int n=0;n<32768;n++)a[n]=1;
for(long i=2;i<32768;i++){
for(long j=2,index=i*j ;index< 32768,j<(32768/i)+1;j++)
{
index =i*j;
a[index]=0;
}
}
for(int k=1;k<32768;k++){
if(a[k]==1)
inOut<<k<<"是质数!"<<"\n";
}
inOut.close();
}
[此贴子已经被作者于2007-7-20 16:53:45编辑过]