引用: |
【欧虫的贴子】应该可以这样改吧:if(x%i==0) a++;改为if(x%(i+1)==0) a++; 觉得这样更合题意 ........................... |
引用: |
【怪物125号的贴子】int knownPrime[100000]; int pos; BOOL isPrime(int x) { for(int i=1; i<=pos; i++) { if (x % knownPrime == 0) return FALSE; if (x <= knownPrime * knownPrime) break; } if (x == 1) return FALSE; pos++; knownPrime[pos] = x; return TRUE; } 看看我速度飞快的代码,但要从小到大搜索一遍以初始化knownPrime表(搜索的过程也可以用来探索比如100,000内的所有素数,只需0.35秒),然后才能用于判断一个数是否素数 void main() { int l=GetTickCount(); pos = 1; knownPrime[1] = 2; for(int i=1;i<=100000;i++) { if (isPrime(i)) cout << i << " "; } cout << endl << "Time:" << (GetTickCount()-l) << endl; return; } ........................... |