#include <math.h>
#define NUM 1000
int main(void) {
int i, n, sqrt_n, nprime;
int prime[NUM]; // 素数リスト
nprime = 0; // nprime: いま素数リストに入っている個数(ここは初期化)
for (n=2;n<=NUM;n++) { // n: 素数なのか調べたい数(2~1000)
sqrt_n
= pow(n
,0.5); // sqrt_n: √n以下の最大の整数 for (i=0;i<=nprime;i++) { // i: 素数リストの要素番号 素数リストを小さい順にあたっていく
if (prime[i] > sqrt_n || prime[i] == 0) { // 素数リストのsqrt_n以下の数 or 素数リストの最後まで 割り切れることが全くなかった
nprime = nprime + 1; // 素数リストに入っている個数を1つ増やす
prime[nprime-1] = n; // いま調べていたnは素数なので、素数リストの最後に追加する
break; // 次のnへ
} else if (n%prime[i] == 0) { // 素数リストに載っている数で割り切れた
break; // いま調べていたnは素数ではないので、何もせず次のnへ
}
}
}
for (i=0;i<nprime;i++) {
}
return 0;
}
I2luY2x1ZGUgPG1hdGguaD4KI2RlZmluZSBOVU0gMTAwMAoKaW50IG1haW4odm9pZCkgewoJaW50IGksIG4sIHNxcnRfbiwgbnByaW1lOwoJaW50IHByaW1lW05VTV07CQkJCQkvLyDntKDmlbDjg6rjgrnjg4gKCglucHJpbWUgPSAwOwkJCQkJLy8gbnByaW1lOiDjgYTjgb7ntKDmlbDjg6rjgrnjg4jjgavlhaXjgaPjgabjgYTjgovlgIvmlbDvvIjjgZPjgZPjga/liJ3mnJ/ljJbvvIkKCWZvciAobj0yO248PU5VTTtuKyspIHsJCQkJLy8gbjog57Sg5pWw44Gq44Gu44GL6Kq/44G544Gf44GE5pWw77yIMu+9njEwMDDvvIkKCQlzcXJ0X24gPSBwb3cobiwwLjUpOwkJCS8vIHNxcnRfbjog4oiabuS7peS4i+OBruacgOWkp+OBruaVtOaVsAoJCWZvciAoaT0wO2k8PW5wcmltZTtpKyspIHsJCS8vIGk6IOe0oOaVsOODquOCueODiOOBruimgee0oOeVquWPtyAg57Sg5pWw44Oq44K544OI44KS5bCP44GV44GE6aCG44Gr44GC44Gf44Gj44Gm44GE44GPCgkJCWlmIChwcmltZVtpXSA+IHNxcnRfbiB8fCBwcmltZVtpXSA9PSAwKSB7CS8vIOe0oOaVsOODquOCueODiOOBrnNxcnRfbuS7peS4i+OBruaVsCBvciDntKDmlbDjg6rjgrnjg4jjga7mnIDlvozjgb7jgacg5Ymy44KK5YiH44KM44KL44GT44Go44GM5YWo44GP44Gq44GL44Gj44GfCgkJCQlucHJpbWUgPSBucHJpbWUgKyAxOwkvLyDntKDmlbDjg6rjgrnjg4jjgavlhaXjgaPjgabjgYTjgovlgIvmlbDjgpLvvJHjgaTlopfjgoTjgZkKCQkJCXByaW1lW25wcmltZS0xXSA9IG47CS8vIOOBhOOBvuiqv+OBueOBpuOBhOOBn27jga/ntKDmlbDjgarjga7jgafjgIHntKDmlbDjg6rjgrnjg4jjga7mnIDlvozjgavov73liqDjgZnjgosKCQkJCWJyZWFrOwkJCS8vIOasoeOBrm7jgbgKCQkJfSBlbHNlIGlmIChuJXByaW1lW2ldID09IDApIHsJLy8g57Sg5pWw44Oq44K544OI44Gr6LyJ44Gj44Gm44GE44KL5pWw44Gn5Ymy44KK5YiH44KM44GfCgkJCQlicmVhazsJCQkvLyDjgYTjgb7oqr/jgbnjgabjgYTjgZ9u44Gv57Sg5pWw44Gn44Gv44Gq44GE44Gu44Gn44CB5L2V44KC44Gb44Ga5qyh44GubuOBuAoJCQl9CgkJfQoJfQoKCWZvciAoaT0wO2k8bnByaW1lO2krKykgewoJCXByaW50ZigiJWRcdCIscHJpbWVbaV0pOwoJfQoKCXJldHVybiAwOwoKfQ==