Ich bin ganz neu hier desshalb bitte keine vernichtenden Antworten, ich weiß selber das ich ein ziemlicher noob bin aber wie gesagt ganz neu *lächel*
Jedenfalls: ich bin 13 Jahre alt und habe sehr wenig - wenig Programmiererfahrung, da wir im Informatik Unterricht in der Schule nur Schrott beigebracht bekommen und ich mir alles was ich wissen will selbst anlesen muss. Vor kurzem hat mir ein Bekannter "Projekt Euler" empfohlen. Eine "Rätsel"-Seite, bei der man sich eine Art Textaufgabe stellen muss und dann mit einer Sprache seiner Wahl (oder auch nur durch nachdenken) ein Lösungswert herrausfinden soll den man dann nach Registration eingeben und überprüfen kann. Ist ganz nett und habe auch schon Problem 1 & 2 von 500 gelöst
--> http://projecteuler.net/problem=3
--> The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
Meine Idee war: Eine Liste mit allen Primzahlen von 2-1000 zu erstellen und dann systematisch durch zu probieren.
Ich habe das mal getestet, bekomme aber beim ausführen folgende Fehlermeldung:
-->Traceback (most recent call last):
File "/Users/Elias/Desktop/Pyton/Problem 3.py", line 24, in <module>
e = prime[E]
IndexError: list index out of range
Ich werde euch meinen Code anhängen...
Nicht wundern die Liste sollte noch länger werden, wollte allerdings erst testen und nach Erfolg hinterher die Liste vervolständigen .
-->
Code: Alles auswählen
#What is the largest prime factore of 600851475143?
prime = [2,3,5,7,9,11,13,17,19,23,29,31,37,39,41,43,47,51,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127]
a = 600851475143
b = prime[-1]
c = prime[-2]
d = prime[-3]
e = prime[-4]
B = 32
C = 31
D = 30
E = 29
while b > -1:
while c > -1:
while d > -1:
while e > -1:
if b*c*d*e == a:
print (a,b,c,d,e,f)
else:
e = prime[E]
E = E - 1
E = 29
e = prime[-4]
if b*c*d*e == a:
print (a,b,c,d,e,f)
else:
d = prime[D]
D = D - 1
D = 30
d = prime[-3]
if b*c*d*e == a:
print (a,b,c,d,e,f)
else:
c = prime[C]
C = C - 1
C = 31
c = prime[-2]
if b*c*d*e == a:
print (a,b,c,d,e,f)
else:
b = prime[B]
B = B - 1
print('error')
Vielen Dank im Vorraus, ich hoffe ihr seit fündiger als ich
Mfg Elias/zz
