Bei einer positiven ganzen Zahl n> 1 bestimmen Sie, wie viele Zahlen gebildet werden können, indem Sie ganze Zahlen größer als 1 addieren, deren Produkt n ist . Wenn beispielsweise n = 24 ist , können wir n wie folgt als Produkt ausdrücken
24 = 24 -> 24 = 24
24 = 12 * 2 -> 12 + 2 = 14
24 = 6 * 2 * 2 -> 6 + 2 + 2 = 10
24 = 6 * 4 -> 6 + 4 = 10
24 = 3 * 2 * 2 * 2 -> 3 + 2 + 2 + 2 = 9
24 = 3 * 4 * 2 -> 3 + 4 + 2 = 9
24 = 3 * 8 -> 3 + 8 = 11
Wir können auf diese Weise die folgenden Zahlen erhalten:
24, 14, 11, 10, 9
Das sind insgesamt 5 Zahlen, also ist unser Ergebnis 5.
Aufgabe
Schreiben Sie ein Programm oder eine Funktion, die n als Eingabe verwendet und die Anzahl der Ergebnisse zurückgibt, die auf diese Weise erhalten werden können.
Dies ist eine Code-Golf- Frage, daher werden die Antworten in Bytes bewertet, wobei weniger Bytes besser sind.
OEIS-Sequenz
code-golf
math
factoring
code-challenge
sequence
polyglot
rosetta-stone
code-golf
string
browser
code-golf
date
code-golf
base-conversion
code-challenge
cops-and-robbers
hello-world
code-golf
cops-and-robbers
hello-world
Post Rock Garf Hunter
quelle
quelle
2,2,3,3 -> 10
,2,6,3 -> 11
,2,2,9 -> 13
,12,3 -> 15
,2,18 -> 20
,36 -> 36
(2*3)+(2*3)=12
auch in der Liste sein sollte.Antworten:
Brachylog , 8 Bytes
Probieren Sie es online!
Erläuterung
Ich bin mir nicht ganz sicher, warum
~×
nur Listen mit Elementen über 1 erstellt werden, aber es scheint so zu sein, was bei dieser Herausforderung großartig funktioniert.quelle
Gaia ,
91413 BytesFehler behoben auf Kosten von 5 Bytes dank Jonathan Allan, dann 1 Byte Golf.
Probieren Sie es online!oder versuche es als Testsuite
Erläuterung
quelle
[6 6]
Jelly ,
11 1514 Bytes+4 Bytes zur Behebung eines Fehlers (vielleicht ein besserer Weg?)
-1 Byte durch Missbrauch der Symmetrie
Eine monadische Verknüpfung, die positive ganze Zahlen aufnimmt und zurückgibt
Probieren Sie es online! oder sehen Sie sich eine Testsuite an
Wie?
Aktualisierung...
quelle
Python 2 , 206 Bytes
Probieren Sie es online!
Erläuterung
quelle
Mathematica, 110 Bytes
quelle
JavaScript (ES6) 107 Byte
Ungolfed:
Testfälle:
Code-Snippet anzeigen
Um zu überprüfen, ob die Funktion die richtigen Summen berechnet, können wir die Schlüssel des Objekts ausgeben, anstatt
t
:quelle
Python 3 , 251 Bytes
Probieren Sie es online!
Das Design ist grundlegend:
zerlegen Sie n in seine Primfaktoren (ein Primfaktor kann mehrmals vorkommen:)
16 -> [2,2,2,2]
. Das ist die Funktionf
.Berechnen Sie die Partitionen der Liste der Primfaktoren und multiplizieren Sie die Faktoren in jeder Partition. Die Partitionen befinden sich unter /programming//a/30134039 , und die Produkte werden im laufenden Betrieb berechnet. Das ist die Funktion
t
.Die letzte Funktion erhält die Produkte jeder Partition von n und summiert sie, um die Anzahl der verschiedenen Werte zu erhalten.
Das Ergebnis für
2310=2*3*5*7*11
ist49
.EDIT : Vielleicht muss behoben werden, aber ich habe keine Zeit, es jetzt anzusehen (ich habe es eilig). Hinweis: Stimmt das Ergebnis
2310=2*3*5*7*11
? Das glaube ich nicht.EDIT2 : Riesige Verlegenheit. Siehe oben. Vorherige (Buggy-) Version war: Online ausprobieren!
f
berechnet die Faktoren (, mit einem(0, n)
statt(1, n)
als erstes Element.Das Lambda teilt jeden Faktor in "Subfaktoren" und summiert diese "Subfaktoren".
quelle