我正在閱讀第7章練習7中由Stephen G. Kochan編寫的一本名爲C編程的書,我只介紹了變量,數據類型,算術表達式,程序循環,決策制定和數組處理, 沒有其他的。使用數組計算素數
此問題要求我們顯示使用被稱爲Erastosthenes其下面列出 步驟1中的步驟的篩的算法150枚第一素數:定義整數P.集的所有元素P [I]到陣列0,2 < = i < = n 第2步:將i設置爲2 第3步:如果i> n,算法終止。步驟4:如果P [i]是0,那麼i是素數。 步驟5:對於j的所有正整數值,使得i Ĵ< = N,P [I j]的設定爲1個 步驟6:加1到i和轉到步驟3
我理解算法,但是當我試圖實現它,它只是返回0。
//Sieve of Erastosthenes
#include <stdio.h>
int main (void)
{
int i, j, P[151];
for (i = 2; i <= 150; ++i)
P[i] = 0;
for (i = 2; i <= 150; ++i){
if (P[i] = 0)
printf ("%i ", P[i]);
for (j = 1; j*i <= 150; ++j)
P[i*j] = 1;
}
return 0;
}
另外,我知道我必須包含頭文件使用布爾在我的計劃,我需要添加任何東西使用double?
相關:[「你會需要更大的船」](http://www.ign.com/top/movie-moments/5) - (或在你的情況下,一個更大的陣列)。充其量,你的代碼只能計算150以下的素數,而不是前150個素數,即不存在的錯誤(有)。 – WhozCraig