1. ホーム
  2. c++

[解決済み】エラー:バイナリ%への無効なオペランド('double'と'double'がある)。

2022-02-12 06:04:20

質問内容

素数を10万個リストアップするプログラムを書いています。 10個まではうまくいくのですが、何個も並べると負の値になってしまいます。 intをlong intに変えても何も変わらず、doubleに変えたらタイトルにあるようなエラーになりました。 変数はどうすればいいのでしょうか? 私はまだプログラミングの初心者であることに留意してください。 また、過去の投稿を見ましたが、答えは見つかりませんでした。

 int is_prime(double x,char array[]){
 //doesnt use array but I put it in there

     double j=2;//divider
     for(j=2;j<=pow(x,0.5);j++){
         if((x%j==0)){
             return(0);
         }   //isnt prime  
     }
     return(1);// because it is prime.
 }

解決方法は?

演算子でdoubleは使えないので、intが必要です。

する必要があります。 #include <math.h> を実行し、fmod関数を使用します。

if(fmod(x,j)==0)

フルコードです。

 #include <math.h>
 int is_prime(double x,char array[]){
 //doesnt use array but I put it in there

     double j=2;//divider
     for(j=2;j<=pow(x,0.5);j++){
         if(fmod(x,j)==0){
             return(0);
         }   //isnt prime  
     }
     return(1);// because it is prime.
 }