×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。

//エラトステネスのふるい

#include <stdio.h>
#include <time.h>

#define MAX 1000

int main()
{
    int i,j;
    //エラトステネスのふるい用配列。
    //true なら素数。
    bool Prime[MAX+1];
    
    for(i=0;i<=MAX;i++){//初期化
        Prime[i] = true;
    }
    
    for(i=2; i*i<=MAX; i++){//i=2からi=√MAXまで
        if(Prime[i] == true){
            for(j=i*2;j<=MAX;j+=i){//エラトステネスの重要ポイント
                Prime[j] = false;//倍数は素数から除外
            }
        }
    }
    
    //合ってるかどうか表示
    for(i=2;i<=MAX;i++){
        if(Prime[i]){
            printf("%d ",i);
        }
    }
    return 0;
}