for(i=2; i<=num; i++){ if(i == num){ // prime }else if((num % i) == 0){ // non prime break; } }
このコードの後半の、
if((num % i) == 0)
は、「numがnum未満のある数で割り切れたら」という意味。つまり、素数でないことを示している。
そして、
f(i == num)
は、「最後まで残ったら」という意味。それ未満の全ての数で割り切れないならそれは当然素数。
分からなくなった時は適当な数を代入して動作を確かめてみるのがいい。
あと、1つの整数が素数かどうかを判定するのには計算量の関係でミラー・ラビン法を使うのが普通。理解に深い数学の知識が必要なので、入門レベルではない。
「キーボードから数を入力させて、その数が素数か否かを判断させるコード」なんだけど #include <stdio.h>int main(void){ int num,i; printf("2以上の整数を入力してください。"); s...
俺は教師じゃないから説明の上手さは期待しないで欲しい。 このコードはむしろelse以降が本質。 for(i=2; i<=num; i++){ if(i == num){ // prime }else if((num % i) == 0){ // non pri...
ありがとうございます先生!!光明が見えました!!!
乞食は死ね