Summe der Ersten 1000 Primzahlen nicht korrekt? was ist falsch?
Hier ist, was ich haben
public class SumOfPrimes {
public static void main(String[] args) {
long sum = 0;
for (int i = 2; i <= 1000; i++) {
if (isPrime(i)) {
sum += i;
}
}
System.out.println(sum);
}
private static boolean isPrime(final int number) {
for (int i = 2; i * i <= number; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
Was ich bekomme ist
76127
Jedoch die richtige Antwort ist
3682913
Referenz: http://www.wolframalpha.com/input/?i=sum+ersten+1000+prime+zahlen&x=0&y=0
Ich bin nicht in der Lage, Fehler in meinem code, keine Hilfe hier?
- "Die Summe der ersten 1000 Primzahlen" ist nicht das gleiche wie "die Summe aller Primzahlen, die <= 1000"
- Machen Sie dies ein wenig effizienter durch starten von sum 2, ich 3, und false zurückgeben, in isPrime für alles, was ist ein Vielfaches von 2. Dann können Sie beginnen, isPrime ist ich auf 3, und einer Schrittweite von 2 in jeder Schleife, wodurch die Prüfung nur aus ungeraden zahlen besteht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich völlig falsch verstanden, die Frage. Die folgenden heraus gearbeitet werden feine
Seine richtige , wie angezeigt, durch Blorgbeard "Die Summe der ersten 1000 Primzahlen" ist nicht das gleiche wie "die Summe aller Primzahlen, die <= 1000".
In deinem Fall das wichtigste, ist die Berechnung der Summe der ersten 168 Primzahlen.
Müssen Sie schreiben Sie die Haupt-wie die folgenden, um die Summe der ersten 1000 Primzahlen:
Ausgabe:
Dein Programm ist korrekt, habe es gerade getestet mit Python.
print("Summe der log-quotient:", sum/c)
print(sumPrimes)
Ein guter Weg, um zu testen Sie Ihr Programm manuell hinzufügen, bis ein set für die ersten paar Primzahlen (2, 3, 5). Die Antwort ist einfach, geben Sie ihn in Ihr Programm und überprüfen Sie die Ausgabe.
Hier ist meine Ausgabe:
Verhältnis der Primzahlen, um Ihre log-quotient sollte Methode 1, sollte aber nie überschritten werden kann (Ein interessanter Leckerbissen).
Eigentlich wurde das Programm für das finden der Summe der Primzahlen bis 1000 und es ist 76127 und die Summe der ersten 1000 natürlichen zahlen ist 3682913.
Summe der ersten 1000 natürlichen zahlen
isPrime(n)==1