Python: Finde die zwei Primfaktoren einer Zahl. Wie kann man diesen Code effizienter machen?
Mein aktueller Code:
import math
def factorMe(value):
last = int(math.sqrt(value)+1)
for i in range(2,last):
if value %i ==0:
return (i,int(value/i))
Mein Code kann die meisten Testfall treffen; Aber wenn die Eingabe 603091532958059 ist, lautet die Antwort (24557917, 24557927); Aber es dauert mehr als 1 Sekunde zu beenden (Zeitlimit überschritten);
Irgendwelche Vorschläge? Vielen Dank!
Sie könnten Ihren Code durch den Faktor 2. In 'for' Schleife beschleunigen könnten Sie nur ungerade Zahlen überprüfen, denn nur gerade Primzahl ist 2. – kvorobiev
Werfen Sie einen Blick auf https: // en .wikipedia.org/wiki/Fermat% 27s_factorization_method –