Hi,
ich habe ein Problem mit einer Aufgabe von ProjectEuler.net :
"What is the largest prime factor of the number 600851475143 ?"
Meine Überlegungen sähen so aus:
1.
Mittels einer for-Schleife die Primzahlen bis 600851475143 ausfiltern. Innerhalb der Schleife soll eine if-Abfrage die Primzahlen bestimmten. Wüsste allerdings noch keine Konkrete abfrage.
Vielleicht
2.
Diese Primzahlen in einer Array speichern und sortieren. Das höchste zuerst oder das niedrigste, egal.
Dann die höchste Primzahl bis 600851475143 als Dividor nehmen und mittels einer if-Abfrage herausfinden, ob das Ergebnis eine Ganzzahl ist oder nicht. Nur wie geht das?
Wenn ja, so soll die nächst kleinere Primzahl genommen werden und mit dem neuen Ergebnis verrechnet werden. Wenn die Primzahl als Dividor gilt, also ein ganzzahliges Ergebnis erzeugen kann, so wird diese Zahl in einem neuen Array gespeichert.
Am Schluss habe ich ein Array mit allen Primfaktoren der Zahl 600851475143 und kann das erste Element des Arrays ausgeben.
3.
Ein Problem: alle Primzahlen bis "600851475143" sind gefragt. Nur reicht da weder int noch long.
Bei
meint er: "Integer number too large: 600851475143" ! Gibts nichts größeres als long?
Was meint ihr?
Sind meine Überlegungen gut und vor allem realisierbar? Könnt ihr mir ein paar Denkanstöße/Kritik geben?
Die Struktur kommt von mir selbst und die Überlegungen, nur das in einem Code zu verpacken ist dann doch etwas zu schwer für mich. Oder es liegt an meiner Denkweise.
Danke.
LG
ich habe ein Problem mit einer Aufgabe von ProjectEuler.net :
"What is the largest prime factor of the number 600851475143 ?"
Meine Überlegungen sähen so aus:
1.
Mittels einer for-Schleife die Primzahlen bis 600851475143 ausfiltern. Innerhalb der Schleife soll eine if-Abfrage die Primzahlen bestimmten. Wüsste allerdings noch keine Konkrete abfrage.
Vielleicht
Code:
if ( zahl % 2 != 0) {prim!}
2.
Diese Primzahlen in einer Array speichern und sortieren. Das höchste zuerst oder das niedrigste, egal.
Dann die höchste Primzahl bis 600851475143 als Dividor nehmen und mittels einer if-Abfrage herausfinden, ob das Ergebnis eine Ganzzahl ist oder nicht. Nur wie geht das?
Wenn ja, so soll die nächst kleinere Primzahl genommen werden und mit dem neuen Ergebnis verrechnet werden. Wenn die Primzahl als Dividor gilt, also ein ganzzahliges Ergebnis erzeugen kann, so wird diese Zahl in einem neuen Array gespeichert.
Am Schluss habe ich ein Array mit allen Primfaktoren der Zahl 600851475143 und kann das erste Element des Arrays ausgeben.
3.
Ein Problem: alle Primzahlen bis "600851475143" sind gefragt. Nur reicht da weder int noch long.
Bei
Code:
long Zahl = 600851475143;
Was meint ihr?
Sind meine Überlegungen gut und vor allem realisierbar? Könnt ihr mir ein paar Denkanstöße/Kritik geben?
Die Struktur kommt von mir selbst und die Überlegungen, nur das in einem Code zu verpacken ist dann doch etwas zu schwer für mich. Oder es liegt an meiner Denkweise.
Danke.
LG
Zuletzt bearbeitet: