Kleine Sektflaschen Hochzeit
Das kann man sich leicht überlegen, denn jeder Teiler muss einen "Partner" haben, mit dem multiplitiert er wieder die Zahl ergibt. Beispiel: 36 36 = 2 * 18 36 = 4 * 9 36 = 6 * 6 Einer dieser "Partner" ist immer kleiner und einer immer größer als die Wurzel der Zahl; die Wurzel ist, wenn sie ganzzahlig ist, ihr eigener Partner. Quadratzahlen sind deshalb die einzigen Zahlen, die eine ungerade Anzahl von Teilern besitzen. Wie zufällige zahl von bei Processing erschaffen? (Computer, Programm, Programmieren). Weiter zum Programmablauf: Liegen die Primzahlen im Array vor, werden sie zunächst in einem neuen Dokument ausgegeben, damit diese aufwändige Rechnung sich auch in der Ausgabe niederschlägt. Anschließend wird jede ganze Zahl von Minimum bis Maximum der Reihe nach durch alle Elemente des Arrays, also durch alle Primzahlen geteilt. Ist eine der probierten Primzahlen ein Teiler der Zahl, wird er in die Ausgabe geschrieben. Der Quotient wird mit der zuletzt verwendeten Primzahl erneut untersucht, weil es bei der Primfaktorzerlegung ja vorkommen kann, dass eine Primzahl mehrfacher Teiler einer Zahl ist.
Beispiel: 525 = 3 * 5 * 5 * 7 Ergibt die Division 1, ist der Algorithmus beendet, denn in diesem Fall ist die untersuchte Zahl bzw. der weiter untersuchte Quotient selbst eine Primzahl und hat keine weiteren Teiler mehr. Am Ende wird noch die Laufzeit berechnet und ausgegeben. Types:arrays:start [Java lernen durch Ausprobieren!]. Das Programm hat bei größeren Zahlen eine so große Laufzeit, dass der Internet Explorer ungeduldig wird, und fragt, ob er das Skript abbrechen soll. Deshalb wollte ich die Laufzeit optimieren und verfiel auf folgende Idee: Man könnte doch, anstatt zu Beginn alle Primzahlen bis zum eingegebenen Maximum zu berechnen, die Primfaktorzerlegung selbst dazu benutzen, die erforderlichen Primzahlen zu ermitteln. Immer wenn man bei einer Primfaktorzerlegung mehr Primzahlen braucht, als im Primzahlarray vorhanden ist, ist der Rest der Faktorzerlegung eine weitere Primzahl, die man nur noch speichern muss!
("Primzahlen:
"); Text auf der Seite ausgeben (mit HTML-Tag für neue Zeile)
for (i=1; i<=max;i++) {
if (Primzahl[i] == true) (" "+i); Alle nicht gestrichenen Zahlen werden ausgegeben. } ("
");