Inspiriert von dieser Frage zu Math.
Lassen Sie die prime Faktorisierung einer Zahl, n , dargestellt werden als P (n) 2 = a x 3 b x 5 C x ... .
(Verwenden von x als Multiplikationssymbol.)
Dann kann die Anzahl der Teiler von n als D (n) = (a + 1) x (b + 1) x (c + 1) ... dargestellt werden .
Somit kann man leicht sagen , dass die Anzahl von Divisoren von 2N ist D (2n) = (a + 2) x (b + 1) x (C + 1) , ... ,
die Anzahl von Divisoren von 3N ist D (3n =) (a + 1) x (b + 2) x (C + 1) , ... ,
und so weiter.
Herausforderung:
Schreiben Sie ein Programm oder eine Funktion, die diese Eigenschaften verwendet, um n bei bestimmten Divisoreingaben zu berechnen .
Eingang:
Eine Reihe von ganzen Zahlen, nennen wir sie w, x, y, z mit allen folgenden Definitionen:
- Alle Eingänge sind größer als 1 -
w, x, y, z > 1
- x und z sind verschieden -
x<>z
- x und z sind prime -
P(x)=x
,D(x)=2
undP(z)=z
,D(z)=2
- w ist die Anzahl der Teiler von xn -
D(xn)=w
- y ist die Anzahl der Teiler von zn -
D(zn)=y
Für das in der verknüpften Frage angegebene Problem könnte ein Eingabebeispiel sein (28, 2, 30, 3)
. Dies übersetzt zu D(2n)=28
und D(3n)=30
mit n=864
.
Ausgabe:
Eine einzelne Ganzzahl n , die die obigen Definitionen und Eingabebeschränkungen erfüllt. Wenn mehrere Zahlen zu den Definitionen passen, geben Sie die kleinste aus. Wenn keine solche Ganzzahl möglich ist, geben Sie einen Falsey- Wert aus.
Beispiele:
(w, x, y, z) => output
(28, 2, 30, 3) => 864
(4, 2, 4, 5) => 3
(12, 5, 12, 23) => 12
(14, 3, 20, 7) => 0 (or some other falsey value)
(45, 13, 60, 11) => 1872
(45, 29, 60, 53) => 4176
Regeln:
- Es gelten die Standardregeln für Code-Golf und Lücken .
- Es gelten die Standard-Eingabe- / Ausgaberegeln .
- Die eingegebenen Nummern können in beliebiger Reihenfolge angegeben werden. Bitte geben Sie in Ihrer Antwort an, welche Reihenfolge Sie verwenden.
- Eingabenummern können in jedem geeigneten Format vorliegen: durch Leerzeichen getrennt, ein Array, separate Funktionen oder Befehlszeilenargumente usw. - Sie haben die Wahl.
- In ähnlicher Weise sind bei der Ausgabe an STDOUT das umgebende Leerzeichen, nachfolgende Zeilenumbrüche usw. optional.
- Eingabeanalyse und Ausgabeformatierung sind nicht die interessanten Merkmale dieser Herausforderung.
- Im Interesse einer vernünftigen Komplexität und ganzzahliger Überläufe unterliegt die Herausforderungsnummer n Einschränkungen, sodass
1 < n < 100000
Sie sich keine Gedanken über mögliche Antworten außerhalb dieses Bereichs machen müssen.