我正在處理一些簡單的問題。 我想質數C - 使用此算法獲取素數
我會用這個算法
和...我完成代碼編寫這樣的。
int k = 0, x = 1, n, prim, lim = 1;
int p[100000];
int xCount=0, limCount=0, kCount=0;
p[0] = 2;
scanf("%d", &n);
start = clock();
do
{
x += 2; xCount++;
if (sqrt(p[lim]) <= x)
{
lim++; limCount++;
}
k = 2; prim = true;
while (prim && k<lim)
{
if (x % p[k] == 0)
prim = false;
k++; kCount++;
}
if (prim == true)
{
p[lim] = x;
printf("prime number : %d\n", p[lim]);
}
} while (k<n);
欲檢查多少重複這個代碼(X + = 2; LIM ++; k ++;) 所以我用XCOUNT,limCount,kCount變量。
當input(n)爲10時,結果爲x:14,lim:9,k:43錯誤的答案。
答案是(14,3,13)。
我寫代碼不好嗎? 告訴我正確的點PLZ ...
最明顯的不同是沒有'for'循環使用'i' –
第一次到達'sqrt(p [lim])'''p [1]'這是未初始化的。 –
嗯......我想'lim'substitues'我' – COOOPS