私はループの中に私のコードでエラーが出る、for (j = 3; j <=sqrt(num); j +=2)
:'複数のオーバーロードされた関数 "sqrt"のインスタンスが引数リストと一致する場合はどうすればよいですか?
オーバーロードされた関数の1つのインスタンスよりは「SQRTは、」引数リストと一致しました。
どうすれば解決できますか?
# include <cmath>
// determine if number is prime
bool isPrime (long n)
{
int j, num = 0;
{
if (num <=1)
return false;
}
for (j = 3; j <=sqrt(num); j +=2)
{
if (num % j == 0)
return false;
}
return true;
}
あなたの 'sqrt()'関数は何ですか?それをオーバーロードしましたか?コンパイラはあなたにどのような候補を表示しますか? – amit
'int j、num = 0; { if(num <= 1) falseを返します。 } 'これは、' isPrime'が毎回falseを返すのではないでしょうか? – chris
@chris:確かに。それが修正されると、次のループは2を除いた任意の数に対してfalseを返します。 –