前提・実現したいこと
c言語で入力した数に含まれる素数を表示するプログラムを作っています。例えば、6と入力したら2,3,5を表示するといった感じです。自分でいろいろ試行錯誤しましたが行き詰ってしまったのでアドバイスをいただきたいです。
発生している問題
2以上の整数何を入力しても表示される数字が4のみになります。
該当のソースコード
c
1#include<stdio.h> 2 3int main(void) { 4 int n, r, i, j; 5 6 printf("整数を入力してください。\n"); 7 scanf_s("%d", &n); 8 9 if (n >= 2) { 10 for (i = 2; i <= n; i++) { 11 for (j = i - 1,r=1; r!= 0; j--) { 12 r = i % j; 13 } if (j == 1) { 14 printf("%d\n", i); 15 } 16 } 17 } 18 else { 19 printf("この整数の素数は表示できません。\n"); 20 } 21 return 0; 22}
試したこと
2つ目のfor文の初期設定式のrの値を0にすると2のみが表示されます。rの値が0のままで繰り返しがされなかったためだと思っています。
rの値を1以上の整数にすると4のみが表示されます。これはなぜこうなるのかが分かりません。
> 入力した数に含まれる素数を表示
もしかして、入力した数以下の素数を表示、ですか?
それだと'C言語 入力した数以下の素数を表示'でググると32万件ほどヒットするので、わざわざ聞くほどの難しい話は残らないと思うので違うのかな。
同じような目的のソースコードがあることは承知していました。途中まで自分なりにコードを書き問題が発生し、原因や解決策を調べましたが見つからなかったため質問させていただいた次第です。今回は回答していただき解決することができましたが、これからはどうしても自己解決ができなかったときに質問させていただくことにします。ご意見ありがとうございました。
回答1件
あなたの回答
tips
プレビュー