Если вы когда-нибудь узнали о простых числах в математическом классе, вам, вероятно, пришлось в какой-то момент определить, является ли число простым. Вы, наверное, все испортили, когда еще изучали их, например, приняли 39 за простое число. Ну, не волнуйтесь, так как 39 - полупростая, т. Е. Что она является произведением двух простых чисел.
Точно так же мы можем определить k- почти простое число как произведение k простых чисел. Например, 40 является 4-м 4-почти простым; 40 = 5 * 2 * 2 * 2, произведение 4 факторов.
Ваша задача - написать программу / функцию, которая принимает два целых числа n и k в качестве входных и выходных данных и возвращает n- е k -малое простое число. Это код-гольф, поэтому выигрывает самая короткая программа в байтах.
Контрольные примеры
n, k => output
n, 1 => the nth prime number
1, 1 => 2
3, 1 => 5
1, 2 => 4
3, 2 => 9
5, 3 => 27
Разнообразный
Вы должны генерировать простые числа любыми способами, кроме простой замкнутой формы, если такая замкнутая форма существует.
f
в терминах f[n,1]
правильно, поскольку списки почти простых чисел содержат нечетные числа (например, два последних примера, которые не могут быть выражены как произведение степени двойки и простого числа). (И это также говорит о том f[n,1] == 2*f[n,1]
.)