Primzahlen in Java berechnen...
-
Jepp genau. War gestern nur zu faul es detaillierter wieder zugeben.
Und die Primzahlen bis sqrt(n) kann er mit den Sieb des Eratosthenes bestimmen.
So kann sich deine Freundin noch ein paar +Punkte beim Prof. holen.
Beispielcode sollte im Netz genug zu finden sein einfach mal googeln.Cu
Marcel
-
ähm bin ich der einzige, der davon ausgeht, dass mit "p = 2; 3; 5; 7; : : :" eigentlich "p = 2; 3; 5; 7; 9; 11; 13; 15; .." gemeint ist und nicht "p = 2; 3; 5; 7; 11; 13; 17;.."? So macht die Aufgabe ihmo viel mehr Sinn
-
Nein! Du bist nicht der Einzige.
Es war sicherlich gemeint: 2, 3, 5, 7, 9, ...
-
Ähm dann bist du wenigstens nicht der Einzigste der falsch liegt.
9 ist ein Vielfaches von 3 und somit sind alle Vielfachen von 9 auch Vielfache von 3. Somit erübrigt sich auch der Test mit 9. etc.Gruss
Marcel
-
Ich bin niemals der Einzig st e!
-
Nachtrag:
Es wird in der Aufgabe nach den kleinsten Primfaktor gesucht!
9, 15 sind keine Primfaktoren!
-
grenouille_unreg schrieb:
Somit erübrigt sich auch der Test mit 9. etc.
Sicher! Nur, wie willst du das coden?
boolean prim(int n) { if (n <= 2) return n==2; int limit = (int) sqrt(n); for (int j=2; j <= limit; ++j) if (prim(j) && n%j == 0) return false; return true; }
ist ja nicht besonders effizient!
Ein solcher Algorithmus macht nur Sinn bei Sprachen
die Lazy-Evaluation anbieten und ist fernab der
Aufgabenstellung (zu komplex).
-
grenouille_unreg schrieb:
9, 15 sind keine Primfaktoren!
Und woher weißt du das?
Gib's zu: Bei deiner oben angegebenen Aussage hast du
bereits gewußt, daß 9 durch 3 teilbar ist.
-
Es war ein minimalistisches Lemma, das jeder mit einen gesunden Menschenverstand kapiert hätte. Du denkst zu java-mäßig. Es ging darum den Fragenden Lösungsansätze anzubieten, ohne auf irgendwelche Implementierungdetails und Komplexitätsbetrachtungen einzugehen. Da es Erstens zu weit führen würde und Zweitens findet man zieml. viel über die Thematik im Netz. Es war nur ein Denkanstoss.
-
nonN schrieb:
4 Uebung 4.3: Primteiler
Erstellen Sie eine Applikation `Prim', die fur eine positive ganze Zahl n
den kleinsten Primfaktor berechnet.
Algorithmus:
Durchlaufen Sie die Werte p = 2; 3; 5; 7; : : : , bis n durch p teilbar ist,
oder p > n ist. Im zweiten Fall ist n eine Primzahl.Das war die Aufgabenstellung.
Und bei dieser Aufgabenstellung erübrigen sich eigentlich alle
Fachsimpeleien (testen bis n/2 oder sqrt(n), nur durch Primzahlen teilen,..)Insofern ist dieser Thread ziemlich abschweifend geworden.
-
Es ist nirgends geschrieben, dass p eine Primzahl sein soll. Weiter ist das imho nicht sinnvoll. Also bin ich verwundert, dass hier jeder annimmt, dass p eine Primzahl sein soll.
Btw. wäre der Algorithmus für meine Folge selbstverständlich auch richtig (und wesentlich effizienter)...