Aufgabe
Es gibt eine Reihe von Zahlen x
, die sich x^2
teilen 7^x-1
.
Ihre Aufgabe ist es, diese Zahlen zu finden. Bei einer Eingabe von n gibt der Code die n-te Zahl aus, die dieser Regel folgt.
Beispiele 1-Index
In Out
3 3
9 24
31 1140
Die entsprechende Reihenfolge finden Sie hier .
Regeln
Kürzeste Antwort gewinnt *
Es gelten die Standard-Golfregeln
Lücken sind nicht erlaubt
Ihre Antwort kann entweder mit 0 oder 1 indiziert sein. Bitte geben Sie dies in Ihrer Antwort an
n
? Ich kann mit das richtige Ergebnis gebenn=9
, abern=10
es bereitet mir schon Probleme.n=10
gibt mir 32; es ist, weil es beginnt, double anstelle von ganzen Zahlen zu verwenden und der Mod danach falsch ist. :(Antworten:
Haskell, 34 Bytes
Dies verwendet eine 0-basierte Indizierung. Anwendungsbeispiel:
([x|x<-[1..],mod(7^x-1)(x^2)<1]!!) 30
->1140
.Es ist eine direkte Implementierung der Definition. Es erstellt eine Liste aller Zahlen
x
und wählt dien
th.quelle
Pyth , 10 Bytes
Ein Programm, das die Eingabe einer Ganzzahl akzeptiert und einen Wert mit einem Index ausgibt.
Probieren Sie es online!
Wie es funktioniert
quelle
JavaScript (ES7), 40 Byte
Dies verliert relativ schnell an Präzision, da JS an Präzision verliert
7**19
. Hier ist eine ES6-Version mit nahezu beliebiger Genauigkeit:Dies ist für Testfall 31 innerhalb von etwa einer Sekunde abgeschlossen.
Ein paar längere Ansätze:
quelle
05AB1E , 11 Bytes
Probieren Sie es online!
Aus irgendeinem Grund kann ich nicht
½
arbeitenµ7Nm<NnÖ½N
oder ich wäre mit Pyth verbunden..
quelle
Ö
seit Monaten auf meiner Fixliste, aber ich komme nie dazu, mich damit auseinanderzusetzen. Wie auch immer, Sie brauchen das nicht,N
daµ
automatisch das LetzteN
ausgegeben wird, wenn der Stapel leer ist.Python 2 ,
4846 BytesDanke an @Dennis für -2 Bytes!
Eine einindexierte rekursive Funktion, die Eingaben über Argumente entgegennimmt und das Ergebnis zurückgibt.
Probieren Sie es online! (Das Rekursionslimit wurde erhöht, damit der letzte Testfall ausgeführt werden kann.)
Wie es funktioniert
n
ist der gewünschte Index undi
die Zählvariable.Der Ausdruck
~-7**i%i**2<1
gibtTrue
(äquivalent zu1
), wenni^2
dividiert wird7^i - 1
, undFalse
(äquivalent zu0
), wenn nicht. Jedes Mal, wenn die Funktion aufgerufen wird, wird das Ergebnis des Ausdrucks abgezogenn
undn
jedes Mal , wenn ein Treffer gefunden wird , dekrementiert .i
wird ebenfalls erhöht.Das Kurzschlussverhalten von
and
bedeutet, dass wannn
ist0
,0
zurückgegeben wird; Dies ist der Basisfall. Sobald dies erreicht ist, stoppt die Rekursion und der aktuelle Wert voni
wird vom ursprünglichen Funktionsaufruf zurückgegeben. Anstatt explizit zu verwendeni
, wird dies unter Verwendung der-~
vor dem Aufruf stehenden Taste durchgeführt. Inkrementierzeiten0
i
ergebeni
sich nach Bedarf.quelle
(~-7**i%i**2<1)
spart ein paar Bytes.Python 2 ,
575351 Bytes-4 Bytes dank ETHproductions
-2 Bytes dank TuukkaX
Probieren Sie es online!
Die Sequenz ist 1-indiziert
quelle
(7**i)
? Ich habe sie entfernt und es hat bei denen funktioniert, die ich versucht habe.**
eine höhere Priorität als~
und-
Python 2, 57 Bytes
Bei großen Werten dauert dies sehr, sehr lange. Außerdem wird viel Speicher verwendet, da die gesamte Liste weiter als erforderlich erstellt wird. Das Ergebnis ist nullindexiert.
Probieren Sie es online aus
quelle
2**n+1
Obergrenze?2**50
. Ich könnte es gebrauchen9**n+9
, aber es dauert viel, viel länger. Ich habe vor einigerf(20)
Zeit angefangen zu rennen (mit2**n+1
); es ist noch nicht fertig.Mathematica, 43 Bytes
Ich habe derzeit drei verschiedene Lösungen bei dieser Byteanzahl:
quelle
Divisible
.Cases[Range[#^3],x_/;x^2∣(7^x-1)][[#]]&
basierend auf dem heuristischen Argument, dass n ^ 3 eine Obergrenze ist. Ich habe einen wirklich wunderbaren Beweis dafür gefunden, dass dieser Rand zu schmal ist, um ihn aufzunehmen :)PARI / GP , 42 Bytes
Ziemlich einfach. 1-indiziert, obwohl dies leicht geändert werden könnte.
oder
quelle
Python 3 , 45 Bytes
Geben Sie für Eingabe 1 True zurück , was standardmäßig zulässig ist .
Probieren Sie es online!
quelle
R, 35 Bytes
Dies funktioniert nur für
n<=8
.Hier ist jedoch eine längere Version, die
n<=25
für 50 Bytes funktioniert :quelle
8
weil es ein Long Int wird?gmp
, das beliebig große ganze Zahlen zulässt. Mir geht jedoch schnell der Arbeitsspeicher für die oben genannten Aufgaben ausn=25
.PHP,
4749 BytesFunktioniert nur für n <9 (
7**9
ist größer alsPHP_INT_MAX
bei 64bit)62 Bytes mit Ganzzahlen beliebiger Länge: (nicht getestet; PHP auf meinem Rechner hat kein bcmath)
Laufen Sie mit
php -nr '<code>' <n>
.Pseudocode
quelle
Pyke, 10 Bytes
Probieren Sie es hier aus!
quelle
Clojure , 83 Bytes
Probieren Sie es online!
Dies erstellt eine unendliche Liste von Java BigIntegers ab 1 und filtert sie nach der Definition. Es verwendet eine nullbasierte Indizierung, um den n- ten Wert aus der gefilterten Liste auszuwählen .
quelle
Perl 5, 35 Bytes
Nun, das fehlte, also hier ist es:
map{$_ if!((7**$_-1)%($_**2))}1..<>
quelle
PowerShell, zu viele Bytes
Nur um zu sehen, ob es möglich war und ist.
quelle
Perl 6 ,
3534 Bytes0-indiziert.
Dank Brad Gilbert ein Byte gespart.
quelle
{grep(…)}
QBIC , 39 Bytes
Ich konnte es in QBasic 4.5 nicht zum Laufen bringen, aber es scheint in QB64 gut zu laufen. Aus irgendeinem unerklärlichen Grund weigert sich QBasic, 13.841.287.200 sauber durch 144 zu teilen, sondern gibt stattdessen einen Rest von -128 an. Es gibt dann 16 als 7. Term dieser Sequenz statt 12 zurück ...
quelle
Wunder , 28 Bytes
Nullindexiert. Verwendung:
Filtert aus der Liste der natürlichen Zahlen mit einem Prädikat, das bestimmt, ob
x^2
es durch teilbar ist7^x-1
, und erhält dann das n-te Element in dieser Liste.quelle
Tcl , 73 Bytes
Probieren Sie es online!
quelle