我得到了我的代碼中的錯誤在for循環,for (j = 3; j <=sqrt(num); j +=2)
:當'多個重載函數的實例'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 2012-02-24 23:19:46
'int j,num = 0;如果(num <= 1) { return false; }'這會不會導致'isPrime'每次都返回false? – chris 2012-02-24 23:25:28
@chris:確實。一旦這個問題得到解決,下面的循環將返回除2之外的任何數字的錯誤。 – 2012-02-25 00:40:51