練習問題の一つに
キーボードから数を入力し、その数が素数
(1またはその数以外で割り切れない数)であるかどうかを
判断するコードを記述してください。
という問題で
実行した際の画面結果の具体例はこちらで
・7を入力した際の画面結果
2以上の整数を入力してください。
7
7は素数です。
・10を入力した際の画面結果
2以上の整数を入力してください。
10
10は素数ではありません。
そして
このコードの答えがこちらでした。
#include <stdio.h>
int main(void)
{
int num,i;
printf("2以上の整数を入力してください。\n");
scanf("%d", &num);
for(i=2; i<=num; i++){
if(i == num){
printf("%dは素数です。\n", num);
}
else if((num%i)==0){
printf("%dは素数ではありません。\n", num);
break;
}
}
お聞きしたい点は
numに7をいれても10をいれたとしても
繰り返すたびにiの数は増えて最終的には
if(i == num)の条件には合うと思うのですが
なぜ10を入れた際にelse if((num%i)==0)の条件分岐になるのでしょうか??
またどういう処理をしているのかが気になっています
もやもやして寝るに寝れなくて困っています。宜しくお願いします!