Geben Sie bei einer natürlichen Zahl die te kubanische Primzahl zurück .
Kubanische Primzahlen
Eine kubanische Primzahl ist eine Primzahl der Form
wobei und oder
Einzelheiten
- Sie können eine auf 0 oder 1 basierende Indizierung verwenden, je nachdem, was für Sie am besten geeignet ist.
- Sie können die te Primzahl mit dem Index oder den ersten Primzahlen in aufsteigender Reihenfolge zurückgeben, oder Sie können eine unendliche Liste / einen Generator zurückgeben, der die Primzahlen in aufsteigender Reihenfolge erzeugt.
Testfälle
Die ersten Begriffe lauten wie folgt:
(#1-13) 7, 13, 19, 37, 61, 109, 127, 193, 271, 331, 397, 433, 547,
(#14-24) 631, 769, 919, 1201, 1453, 1657, 1801, 1951, 2029, 2269, 2437,
(#25-34) 2791, 3169, 3469, 3571, 3889, 4219, 4447, 4801, 5167, 5419,
(#35-43) 6211, 7057, 7351, 8269, 9241, 10093, 10267, 11719, 12097,
(#44-52) 12289, 13267, 13669, 13873, 16651, 18253, 19441, 19927, 20173
Weitere Begriffe finden Sie in OEIS: Sie werden in zwei Sequenzen aufgeteilt, je nachdem, ob oder : A002407 und A002648
Antworten:
JavaScript (V8) , 54 Byte
Ein vollständiges Programm, das kubanische Primzahlen für immer druckt.
Probieren Sie es online!
NB: Wenn sich in Ihrem Drucker kein unbegrenztes Papier befindet, versuchen Sie nicht, dies in Ihrer Browserkonsole auszuführen , da dies
print()
möglicherweise eine andere Bedeutung hat.JavaScript (ES6),
63 61 6059 BytesGibt dien te kubanische Primzahl mit einem Index zurück.
Probieren Sie es online!
Wie?
Dies beruht auf der Tatsache, dass kubanische Primzahlen Primzahlen der Form sind:
Die obige Formel kann wie folgt geschrieben werden:
oder für jedesy>0 :
das istx3−y3x−y fürx=y+1 bzw.x=y+2 .
quelle
05AB1E ,
16129 BytesErzeugt eine unendliche Liste.
4 Bytes mit Kevin Cruijssens Port-of-Arnaulds-Formel gespeichert .
Weitere 3 Bytes dank Grimy gespeichert
Probieren Sie es online!
Erläuterung
quelle
N^2+3
auf den Stapel legen " sollte sein3*N^2
. Auch warum das)
statt¯
? Weil es einfacher ist zu tippen? Und aus irgendeinem Grund habe ich das Gefühl, dass dasNnN‚3*¬sO‚
1 Byte kürzer sein kann, aber ich sehe es nicht. Eine leichte Gleichbyte-Alternative istNn3*DN3*+‚
. Aber ich sehe wahrscheinlich nur Dinge, die nicht da sind.;) Nette Antwort, also +1 von mir.R ,
7573 BytesProbieren Sie es online!
-2 Bytes, indem ich bemerke, dass ich Klammern entfernen kann, wenn ich
*
stattdessen verwende&
(anderer Vorrang).Gibt das aus
n
th Cuban prime (1-indexed).1:4
c(1,4)
).Slightly ungolfed version of the code:
(*) No prime can be of the form3p=1+3n2 , else 1=3(p−n2) would be divisible by 3 .
No prime other thanp=2 (which isn't a Cuban prime) can of the form 2p=1+3n2 : n would need to be odd, i.e. n=2k+1 . Expanding gives 2p=4+12k(k+1) , hence p=2+6k(k+1) and p would be even.
quelle
Wolfram Language (Mathematica),
666556 bytesTry it online!
J42161217 -1 by using
⌊ ⌋
instead ofFloor[ ]
attinat
⌊3#/4#⌋
instead of⌊3#^2/4⌋
For[n=i=0,i<#,PrimeQ@f@++n&&i++]
instead ofn=2;i=#;While[i>0,i-=Boole@PrimeQ@f@++n]
quelle
Java 8,
94888684 bytes-6 bytes by using the Java prime-checker of @SaraJ, so make sure to upvote her!
-2 bytes thanks to @OlivierGrégoire. Since the first number we check is
7
, we can drop the trailing%n
from Sara's prime-checker, which is to terminate the loop forn=1
.-2 bytes thanks to @OlivierGrégoire by porting @Arnauld's answer.
Outputs space-delimited indefinitely.
Try it online.
Explanation (of the old 86 bytes version): TODO: Update explanation
Uses the formula of @Arnauld's JavaScript answer:pn=⌊3n24⌋+1,n≥3 .
quelle
v->{for(int n=7,i=3,p,x,d,r=0;;i+=++r%2*3,n+=i,System.out.print(x>1?x+" ":""))for(x=n,d=1;++d<n;x=x%d<1?0:n);}
, maybe someone can use this to golf? I couldn't.,p
and changingi+=++r%2*3,n+=i
ton+=i+=++r%2*3
, but then I'll still end up at 106 bytes. Using Java 11'sString#repeat
with prime-regex is 105 bytes:v->{for(int n=7,i=3,r=0;;n+=i+=++r%2*3)if(!"x".repeat(n).matches(".?|(..+?)\\1+"))System.out.println(n);}
.%n
isn't required, is it?Wolfram Language (Mathematica) , 83 Byte
Probieren Sie es online!
quelle
Jelly, 12 bytes
Try it online!
Based on @Arnauld’s method. Takes n on stdin and returns that many Cuban primes.
quelle
Wolfram Language (Mathematica), 83 bytes
This solution will output the n-th Cuban prime with the added benefits of being fast and remembering all previous results in the symbol f.
Try it online!
quelle
Whitespace, 180 bytes
Letters
S
(space),T
(tab), andN
(new-line) added as highlighting only.[..._some_action]
added as explanation only.Outputs newline-delimited indefinitely.
Try it online (with raw spaces, tabs, and new-lines only).
Explanation in pseudo-code:
Port of my Java 8 answer, which also uses the formula from @Arnauld's JavaScript answer:pn=⌊3n24⌋+1,n≥3 .
quelle
Python 3,
110108102 bytesÄhnliche Methode zu meiner Mathematica-Antwort (dh
isPrime(1+⌊¾n²⌋) else n++
) unter Verwendung dieses Golf-Prime-Checkers und Zurückgeben eines anonymen unendlichen GeneratorsProbieren Sie es online!
count
bei 2 +1 beginne, so dass derand x>1
in der Primzahl ausgeborgte Checker unnötig ist -7quelle
g=
. Ich hatte es nur an erster Stelle aufgenommen, weil es ein schnelles Visualisieren auf TIO mit ermöglichteprint(next(g) for i in range(52))
.Japt ,
1413 BytesAdaptiert von Arnauld's Formel . 1-indiziert.
Versuch es
1 Byte gespart dank AusführungsformVerfügbarkeit.
quelle
(
.Schläger , 124 Bytes
Probieren Sie es online!
Gibt die n-te kubanische Primzahl mit dem Index 0 zurück.
Verwendet die Formel der JavaScript-Antwort von @ Arnauld
quelle
Python 3 , 83 Bytes
druckt die kubanischen Primzahlen für immer.
Probieren Sie es online!
Basierend auf diesem Prime Generator. Für jede Primzahl wird geprüft, ob eine ganze Zahl y existiert, die die Gleichung für eine von beiden erfülltx = 1 + y oder x = 2 + y .
quelle
Perl 6 ,
3331 Bytes-2 Bytes dank Grimy
Probieren Sie es online!
Anonymer Codeblock, der eine unendliche Liste fauler kubanischer Primzahlen zurückgibt. Hierbei wird die Formel von Arnauld verwendet , um mögliche kubanische Primzahlen zu generieren und diese dann
&is-prime
zu filtern.Erläuterung:
quelle
1+0+|
kann nur sein1+|
Pari / GP , 51 Bytes
Nach der Formel von Arnauld .
Probieren Sie es online!
quelle
APL (NARS), 98 Zeichen, 196 Byte
eingerückt:
Prüfung:
es basiert auf: wenn y in N ist, ist ein möglicher kubanischer Prime
der nächste mögliche kubanische Premier wird sein
quelle