Jeśli kiedykolwiek nauczyłeś się liczb pierwszych w klasie matematycznej, prawdopodobnie w pewnym momencie musiałeś ustalić, czy liczba jest liczbą pierwszą. Prawdopodobnie popełniłeś błąd podczas nauki, na przykład myląc 39 z liczbą pierwszą. Cóż, nie martw się, ponieważ 39 jest półpierwszym, tzn. Że jest iloczynem dwóch liczb pierwszych.
Podobnie możemy zdefiniować k- prawie pierwszą jako iloczyn k liczb pierwszych. Na przykład 40 to czwarta czwarta prawie prawie pierwsza; 40 = 5 * 2 * 2 * 2, iloczyn 4 czynników.
Twoim zadaniem jest napisanie programu / funkcji, która przyjmuje dwie liczby całkowite n i k jako dane wejściowe i wyjściowe / zwraca n- tą k -najbliższą liczbę pierwszą. To jest golf golfowy, więc wygrywa najkrótszy program w bajtach.
Przypadki testowe
n, k => output
n, 1 => the nth prime number
1, 1 => 2
3, 1 => 5
1, 2 => 4
3, 2 => 9
5, 3 => 27
Różne
Musisz wygenerować liczby pierwsze w jakikolwiek inny sposób niż prosty formularz zamknięty, jeśli taki formularz zamknięty istnieje.
f
pod względem f[n,1]
było poprawne, ponieważ listy liczb prawie pierwszych zawierają liczby nieparzyste (np. Dwa ostatnie przykłady, których nie można wyrazić jako iloczyn potęgi dwóch i liczby pierwszej). (I to też mówi f[n,1] == 2*f[n,1]
.)