Bestimmen Sie bei zwei Zahlen N und x die Anzahl der x-stelligen Zahlen, deren Ziffernprodukt N ist
limits: N(<10^6) and x(<12)
Sample Input:
8 3
Sample Output:
10
code-golf
number-theory
fR0DDY
quelle
quelle
Antworten:
Python 208 Zeichen
quelle
Golfscript
4231Eingabe: Erwartet die Zahlen
N
undx
als Befehlszeilenargumente (durch Leerzeichen getrennt).Das Programm kann hier getestet werden .
quelle
Code took longer than 5 seconds to run, so it was aborted.
mit umgekehrten Parametern bekommen. :)x
über 4 hinausgeht. Wenn ich ihn beispielsweise auf meinem Computer mit den Parametern ausführe,3 5
erhalte ich das Ergebnis nach mehr als 30 Sekunden. Also für3 8
ich denke, es könnte Stunden sein ...Brachylog (2), 13 Bytes, Herausforderung nach Sprachdaten
Probieren Sie es online aus!
Erläuterung
Ein netter Golf-Trick, der hier verwendet wird, ist, dass er sich im Gegensatz zu fast allen Metapredikaten
ᶜ
überhaupt nicht um den tatsächlichen Wert von kümmert.
(der normalerweise verwendet wird, um eine Ausgabe für die Metapredikate zu erstellen). kann als solche.
wie jede andere Variable verwendet werden (Speichern eines Bytes, da es implizit vorher angezeigt wird}
). Da es hier nirgendwo implizite Beschriftungen gibt, musste ich eine explizite Beschriftung hinzufügen≜
, umᶜ
etwas zu zählen.quelle
Scala 107:
ungolfed, debugfriendly version:
Aufruf mit Debugging-Ausgabe:
quelle
Python (arbeitet noch daran) 164
quelle
C # 128
Diese C # -Methode gibt die Anzahl der
x
einstelligen Zahlen zurück, deren Ziffernprodukt istn
. Es erfordert, dass NamespacesSystem
undSystem.Linq
im aktuellen Kontext importiert werden.Online-Version: http://ideone.com/0krup
quelle
Haskell 117 Zeichen
quelle
K, 49
.
quelle
J, 40 Bytes
Generiert alle
x
-stelligen Zahlen, konvertiert jede in Basis 10, findet dann das Produkt jeder Zahl und testet, ob jede Zahl gleich der linken Seite ist, und ermittelt dann die Summe jedes Booleschen Werts.quelle
Jelly , 12 Bytes, Herausforderung nach Sprachdaten
Probieren Sie es online aus!
Nimmt x als Befehlszeilenargument und N als Standardeingabe.
Erläuterung
Der schwierige Teil besteht darin, die Liste der Zahlen mit x Ziffern zu generieren . die niedrigste solche Zahl ist 10 x –1 , die höchste ist 10 x –1. Der Bereich wird hier erzeugt , indem zuerst das Paar ( x , x −1) erzeugt wird, dann 10 zur Potenz von beiden genommen wird und dann der Bereich zwischen ihnen erzeugt wird. Der Bereich umfasst standardmäßig beide Endpunkte. Nur für den Fall, dass N zufällig 0 ist, müssen wir das obere Ende des Bereichs (der zuerst kommt, weil es ein "Rückwärts" -Bereich ist) mit entfernen
Ḋ
.quelle