Im Allgemeinen mache ich Primfaktorisierung und bekomme alle Primfaktoren und ich mache Permutationen und Kombinationen, um alle Faktoren zu finden.
Zum Beispiel: 1824 ist die Nummer, an der ich versuche, Faktoren von. Jetzt brauche ich keine Faktoren von 1824 innerhalb von 300.
Gibt es einen Trick ??
Antworten:
0 für die Antwort № 1Als Brute-Force-Lösung müssen Sie die Zahl nicht priorisieren. Sie können einfach nach allen Zahlen in der Reihe suchen.
Lassen Sie den Zahlenbereich, in dem Sie Faktoren finden möchten, [range_start, range_end] sein. Überspringen Sie einfach diese Zahlen in einer Schleife und prüfen Sie für jede Zahl (zB x), ob (number % x == 0
), wenn ja, dann ist x ein Faktor der Zahl.
0 für die Antwort № 2
Ein Trick, sucht nicht nach ZahlenQuadratwurzel der Zahl, die Sie nach Faktoren suchen. Um zum Beispiel Faktoren von 2-300 zu finden, müssen Sie nur wirklich von 2-ceil (sqrt (1824)) suchen, die 2-43 ist. Sobald Sie a finden Nummer im Bereich von 2 bis 43, teilen Sie es in 1824, um nach anderen Faktoren zu suchen, die über 43 liegen können.