Die Häufigkeit, mit der der gleiche Wert beim Lesen von links oder rechts angezeigt wird, wird als Häufigkeit bezeichnet. Von der Häufigkeit, die durch das zweistellige Produkt ausgedrückt wird, beträgt das Maximum 9009 = 91 x 99.
Ermitteln Sie nun die maximale Häufigkeit, die durch das dreistellige Produkt ausgedrückt wird. http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%204
Ich habe den Code überprüft, den ich geschrieben habe. Es scheint Raum für Verbesserungen hinsichtlich der Beurteilung der Primzahlen zu geben, da beurteilt wird, ob der Rest der Division 0 wird oder nicht.
Der folgende Algorithmus wurde als ein dem Elastotenness-Sieb ähnlicher Algorithmus angesehen.
target = seed * 1000 + int (str (seed) [:: -1])
, durchsuchen Sie die obige Liste anhand der größten Zahl und beenden Sie den Vorgang, wenn die Zahl gefunden wird, die True wird.Ich habe versucht, das oben genannte umzusetzen.
def erat_approach():
tl = [False]*(10**6)
for i in range(800,1000):
tl[i*800:i*1000:i] = [True]*200
t = 999
while 1:
n = t*1000+int(str(t)[::-1])
if tl[n]:
break
t-=1
print n
Ergebnis: Explosion war spät (100-mal ausgeführt)
Recommended Posts