Was soll ich tun, wenn " mehr als eine Instanz von überladene Funktion "sqrt" entspricht dem argument-Liste"?

Bekomme ich einen Fehler in meinem code in der for-Schleife for ( j = 3; j <=sqrt(num); j +=2):

mehr als eine Instanz von überladene Funktion "sqrt" entspricht der argument-Liste.

Wie löse ich das?

# 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;
}
  • Was sind Ihre sqrt() Funktionen? haben Sie übermäßig zu belasten? Was Kandidaten weiß der compiler zeigen Sie?
  • int j, num = 0; { if (num <=1) return false; } Würde dies nicht die Ursache isPrime den Wert false zurück, jedes mal?
  • In der Tat. Sobald das behoben ist, wird die folgende Schleife wird false zurückgegeben, für jede Zahl außer 2.
  • Seymour, Guter Fang. Dass man spart ein bisschen Kopfschmerzen später.
InformationsquelleAutor user1231810 | 2012-02-24
Schreibe einen Kommentar