引用: |
【欧虫的贴子】应该可以这样改吧:if(x%i==0) a++;改为if(x%(i+1)==0) a++; 觉得这样更合题意 ........................... |
这里根本没有什么“题”,由于楼主是这样的for(i=0;i
<=x;i++),所以if(x%(i+1)==0) a++;,不但会多算一个 5 % 6 == 0 这样的东西,而且会由于i+1,多出一个加法操作,又慢了一点。
另外,我把楼主的main()改成这样,计算出10000以内的素数。
void main()
{
int l=GetTickCount();
for(int i =0; i<=10000;i++)
if (sushu(i)) cout << i << " ";
cout << endl << (GetTickCount() -l);
return;
}
结果耗时1687ms,但我有一个算法只需20ms(我也不知道是多少,因为GetTickCount已经不能准确计时20ms了),如果用于计算100000以内的素数,差别会更加大,呵呵。