![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
素数を判定するプログラムをC言語で作れという問題があったのですが、以下のものをビルドして実行したら途中で止まってしまいました。(例えば5と入力する)しかし、1以下の場合は正常にif文が評価されました。
// homework4.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
#include <stdio.h>
int main(int argc, char* argv[])
{
int number;
int n;
int i;
printf("1より大きい整数を入力してください: ");
scanf("%d", &number);
if (number <= 1) {
printf("1より大きい整数を入力してください\a: ");
scanf("%d", &number);
}
for (n = 2; n = number - 1; n++) {
i = number % n;
if (i = 0) {
printf("%dは素数ではありません", number); break;
}
}
printf("%dは素数です", number);
return 0;
}
自分ではどこがおかしいのかさっぱりわかりません。よろしくお願いします。
No.5ベストアンサー
- 回答日時:
> n = 2; n == number - 1; n++
にしても、真偽を取り違えていませんか。
また
n = 2; n != number - 1; n++
にしても、number = 2 だったら、どうなるでしょう。
また、自然数はそれ +1 の 1/2 までの自然数 (1 を除く) で一度も割り切れない場合は素数なので、対象自然数の -1 数まで調べる必要はありません (1/2 数より大きな約数は (対象自然数以外に) ない)。
No.4
- 回答日時:
#1です。
おぉ本当だ・・・見落としていました。失礼しました。
>このプログラムでは5を入力したら、そのまま「5は素数です」と出て終了すると思いますが。
これは間違いです。確かに終了しないですね・・・。
No.3
- 回答日時:
for の条件の所
n = number -1
は n への代入になっています。
number が1 でない場合には、常に真になり無限ループします。
n == number -1
か
n < number
とでもすれば良いんじゃないかと思います。
あと同じく
if (i = 0) {
の条件部分は i へ 0 をセットしています。
C での同値判定は、 「=」 ではなく「==」です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
平均、最大値、最小値を表示す...
-
c言語の文字列について質問です...
-
素数を判定するプログラム
-
C言語 exitの使い方
-
VBAでダブルコーテーション入り...
-
数字の位ごとの値を表示するプ...
-
フォームを開くときに、コンボ...
-
excelの、ある数式内の{}の意...
-
エラーの意味は? Lvalue req...
-
DWORDって
-
VB6.0-整数と余りを求める
-
数値計算??
-
VB.NET 2次元配列
-
1つ前の値を変数に保存する方法
-
Variant型で宣言してるのにEmpt...
-
[VBS]変数を定数に変換する方法...
-
VBAで配列のNULL判定
-
jsp~jspにhiddenを使って変数...
-
【VBA】複合代入演算子
-
EXCEL/VBA 変数の値をクリップ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングについての質問...
-
平均、最大値、最小値を表示す...
-
エクセルのマクロでの積分
-
c言語でランタイムエラーの処理...
-
c言語で素数を判別するプログラ...
-
C言語 累乗の計算
-
c言語 プログラミング 等比数列...
-
任意の数から人の数までの素数...
-
Cプログラムについて
-
素数を判定するプログラム
-
C言語初心者です。次の問題で質...
-
プレゼント交換プログラム
-
エラー処理
-
PICの条件分岐について
-
if文を条件演算子に書き換えに...
-
C言語の問題 1 つの文字をキー...
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
エラーの意味は? Lvalue req...
-
VBAでダブルコーテーション入り...
おすすめ情報