//エラトステネスのふるい #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; }