tło
Liczbę n
można opisać jako B
-do, jeśli wszystkie podstawowe czynniki n
ściśle przekraczająB
.
Wyzwanie
Biorąc pod uwagę dwie dodatnie liczby całkowite B
i k
wyprowadzamy pierwsząk
B
wypisz liczby.
Przykłady
Niech f(B, k)
będzie funkcją, która zwraca zestaw zawierający k
B
liczby pierwsze .
> 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
źródło
źródło
B
?n
na czynniki pierwsze. Jeśli wszystkie te liczby pierwsze są większe niżB
, n jestB
równe.Odpowiedzi:
Haskell ,
5344 bajtyWypróbuj online!
Dzięki H.PWiz za -9 bajtów!
źródło
(>b)
do zrozumienia (co nie działa), ale nie na odwrót. Dzięki!Python 3 ,
80, 75 bajtówWypróbuj online!
Dzięki shooqie za oszczędność 5 bajtów.
Zakłada się, że k'th numer B-szorstki nigdy nie przekroczyB ∗ k , czego nie wiem jak udowodnić, ale wydaje się, że jest to dość bezpieczne założenie (i nie mogę znaleźć żadnych kontrprzykładów).
Alternatywne rozwiązanie:
Python 2 , 78 bajtów
Wypróbuj online!
To rozwiązanie nie stanowi powyższego rozwiązania. I jest znacznie bardziej wydajny.
źródło
lambda B,k:[i for i in range(1,-~B*k)if all(i%j for j in range(2,B+1))][:k]
?Galaretka , 7 bajtów
Wypróbuj online!
źródło
Perl 6 ,
3532 bajtów-3 bajty dzięki nwellnof!
Wypróbuj online!
Anonimowy blok kodu, który przyjmuje dwie liczby całkowite i zwraca listę liczb całkowitych.
Wyjaśnienie
źródło
all
zrobić?all
sprawdza, czy wszystkie elementy na liście są zgodne z prawdą. Niedługo[&]
zamiastall
.all
nie jest już używany w ten sposób, dlatego powinienem zaktualizować swoją odpowiedź.all
tworzy połączenie wartości w zakresie2..b
, a wszelkie operacje wykonywane na połączeniu są wykonywane jednocześnie na wszystkich wartościach. Gdy jest oceniany w kontekście logicznym przezgrep
, to zapada się, czy wszystkie wartości w skrzyżowaniu są zgodne z prawdą, tj. NiezeroweŁuska ,
98 bajtówWypróbuj online!
Trwab jako pierwszy i k jako drugie wejście.
źródło
Węgiel drzewny , 33 bajty
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Wejście
B
ik
.Ustaw
z
na 0.Powtarzaj, aż otrzymamy
k
wartości.Przyrost
z
.Podziel
z
przez wszystkie liczby od2
doB
i sprawdź, czy reszta jest równa zero.Jeśli nie, naciśnij przycisk
z
do wstępnie zdefiniowanej pustej listy.Rzuć listę na ciąg i niejawnie ją wyślij.
źródło
JavaScript (ES6), 68 bajtów
Pobiera dane wejściowe jako
(b)(k)
.Wypróbuj online!
Skomentował
źródło
Galaretka , 10 bajtów
Wypróbuj online!
Jak to działa
źródło
JavaScript (Node.js) , 68 bajtów
Wypróbuj online!
źródło
APL (NARS), 52 znaki, 104 bajty
Powyżej wydaje się, że wiersze po 'r ← afw; i' mają nazwy 1 2 3; test:
źródło
05AB1E , 9 bajtów
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło