2019-09-21

anond:20190921031759

俺は教師じゃないか説明の上手さは期待しないで欲しい。

このコードはむしろelse以降が本質

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...

    • 乞食は死ね

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん