2017-12-05 14 views
0

こんにちは私は以下のコードをC言語で書いています。私は、数値を入力する人が法を使って素数であるかどうかをチェックするために入力を取り入れようとしています。 しかし、最初のif文でエラーが発生しています。 エラーは浮動小数点例外(コアダンプ)です これはなぜですか?値を0と比較することはできませんか?以下は素数を見つける方法

#include <stdio.h> 

int main() 
{ 
    int i = 0, j = 0, count = 0, value = 0, stop = 0; 

     scanf("%d", &j); 
     stop = j; 
    for(i = 0; i < stop; ++i) 
    { 
     value = j % i; 
     if(value == 0) 
     { 
     ++count; 
     } 
    } 
    if(count>1) 
     { 
     printf("YES"); 
     } 
     else 
     printf("NO"); 
      return 0; 

} 

実際に私の質問ですが、私は出力を得ることができますが、私のコンパイルが正しく動作するために取得することはできませんよ。 入力

t - t個のテストケースが続きます。所定数はNO」素数であり、場合N [2 < = N < = 2^63-1] 出力

各テストケース出力列 "YES" の場合: [< = 500 T]各行は、1つの整数を含んでいます" さもないと。剰余演算子ので

for(i = 0; i < stop; ++i) 

:あなたはi = 0で始まるので

value = j % i; 

これは、次のとおりです。私は賭け

#include <stdio.h> 

int main() 
{ 
    int i = 0, j = 0, count = 0, value = 0, stop = 0, store[]={0}, s = 0; 

     scanf("%d", &j); 
     stop = j; 
    for(i = 1; i < stop; ++i) 
    { 
     value = j % i; 
     if(value == 0) 
     { 
     store[s]=value; 
     ++count; 
     ++s; 
     } 
    } 

    if(count>=2 || j==1) 
     { 
     printf("NO"); 
     } 
     else 
     printf("YES"); 
    return 0; 
} 
+4

0で割っています。あなたはそれをすることはできません。 「i」を1にしてみてください。 –

+1

5を0で割った値は? –

答えて

1

、あなたは先にif文のエラーで取得します%は除算であり、2番目のオペランドが0を使用することは合法ではありません。ゼロ除算エラーが発生します。

現在:1から始まるのは無意味です。

+0

こんにちは私は私の最初のエラーを解決しました。 – GoodJeans

+0

for(i = 1; i stop/2 inループを使用します。 – Rohit

関連する問題