Also ich hab mir folgendes Ausgedacht:
Code: Alles auswählen
zahl = 600851475143
var = 600851475142
def uII():
if var%2 == 0:
return False
else:
return True
def uIII_IX():
quer = sum([int(i) for i in str(var)])
if (quer%3 == 0) and (quer%9 == 0):
return False
else:
return True
def uV():
if var%5 == 0:
return False
else:
return True
def uVII():
if var%7 == 0:
return False
else:
return True
def teiler():
if zahl%var == 0:
return True
else:
return False
while True:
if (uII() == True) and(uIII_IX() == True) and (uV() == True)\
and (uVII() == True):
print var
if teiler() == True:
print "Lösung: " + var
break
if uII() == False :
var = var - 1
else:
var = var - 2
Das Zeigen der Primzahlen, die nicht in Frage kommen, soll nur veranschaulichen, dass das Programm arbeitet.
Jetzt zu meiner Frage:
Das ganze dauert nun ziemlich. Habt Ihr vielleicht eine Idee wie man das ganze schneller und eleganter lösen kann?
Die Arbeitsweise ist mir Nacht um 3 eingefallen. Also vielleicht deswegen und wegen mangelnder Erfahrung nicht ganz ausgereift
Freue mich auf eure Antworten!
Lg Max