Hintergrund
Eine Zahl n
kann als B
-grob bezeichnet werden, wenn alle Primfaktoren von n
streng überschreiten B
.
Die Herausforderung
Geben Sie bei zwei positiven ganzen Zahlen B
und k
die ersten k
B
rauen Zahlen aus.
Beispiele
Sei f(B, k)
eine Funktion, die die Menge mit den ersten k
B
groben Zahlen zurückgibt.
> f(1, 10)
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
> f(2, 5)
1, 3, 5, 7, 9
> f(10, 14)
1, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59
code-golf
number-theory
primes
factoring
Addison Crump
quelle
quelle
B
?n
In Primzahlen zerlegen . Wenn alle diese Primzahlen größer als sindB
, ist nB
-rough.Antworten:
Haskell ,
5344 BytesProbieren Sie es online!
Danke an H.PWiz für -9 Bytes!
quelle
(>b)
innerhalb des Verständnisses zu nehmen (was nicht funktioniert), aber nicht umgekehrt. Vielen Dank!Python 3 ,
80, 75 BytesProbieren Sie es online!
Danke an shooqie für das Speichern von 5 Bytes.
Dies setzt voraus, dass die k-te B-raue Zahl niemalsB ∗ k überschreitet , was ich nicht beweisen kann, aber als ziemlich sichere Annahme erscheint (und ich kann keine Gegenbeispiele finden).
Alternative Lösung:
Python 2 , 78 Bytes
Probieren Sie es online!
Diese Lösung ergibt nicht die obige Lösung. Und ist viel effizienter.
quelle
lambda B,k:[i for i in range(1,-~B*k)if all(i%j for j in range(2,B+1))][:k]
?Gelee , 7 Bytes
Probieren Sie es online!
quelle
Perl 6 ,
3532 Bytes-3 Bytes dank nwellnof!
Probieren Sie es online!
Ein anonymer Codeblock, der zwei Ganzzahlen akzeptiert und eine Liste von Ganzzahlen zurückgibt.
Erläuterung
quelle
all
das?all
prüft, ob alle Elemente in der Liste wahr sind. Ich werde in Kürze eine Erklärung für das Ganze hinzufügen[&]
anstelle von auch verwenden könntenall
.all
wird nicht mehr so verwendet, also sollte ich meine Antwort aktualisieren.all
Erstellt eine Kreuzung der Werte im Bereich2..b
, und alle an der Kreuzung ausgeführten Vorgänge werden für alle Werte gleichzeitig ausgeführt. Wenn es im Booleschen Kontext von ausgewertet wirdgrep
, kollabiert dies zu der Frage, ob alle Werte in der Junction wahr sind, dh nicht NullSchale ,
98 BytesProbieren Sie es online!
NimmtB als erstes und k als zweiter Eingang.
quelle
Holzkohle , 33 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Eingabe
B
undk
.Auf
z
0 setzen.Wiederholen, bis wir
k
Werte haben.Inkrementieren
z
.Teilen Sie
z
durch alle Zahlen von2
bisB
und prüfen Sie, ob der Rest Null ist.Wenn nicht, drücken Sie
z
auf die vordefinierte leere Liste.Wandeln Sie die Liste in eine Zeichenfolge um und geben Sie sie implizit aus.
quelle
JavaScript (ES6), 68 Byte
Übernimmt die Eingabe als
(b)(k)
.Probieren Sie es online!
Kommentiert
quelle
Gelee , 10 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
JavaScript (Node.js) , 68 Byte
Probieren Sie es online!
quelle
APL (NARS), 52 Zeichen, 104 Byte
Oben scheinen die Zeilen nach 'r ← afw; i' die Namen 1 2 3 zu haben; test:
quelle
05AB1E , 9 Bytes
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle