Кнодельские числа
Числа Кнёделя представляют собой набор последовательностей. В частности, число Knodel для положительного целого числа n
представляют собой набор составных чисел m
, таким образом, что все i < m
, взаимно простое с m
, удовлетворяют условию i^(m-n) = 1 (mod m)
. Множество чисел Кнёделя для конкретного n
обозначается Kn
. ( Википедия ).
Например, K1
это числа Кармайкла и OEIS A002997 . Они идут как {561, 1105, 1729, 2465, 2821, 6601, ... }
. K2
является OEIS A050990 и идет , как, {4, 6, 8, 10, 12, 14, 22, 24, 26, ... }
.
Твое задание
Ваша задача - написать программу / функцию / и т.д. это занимает два числа, n
и p
. Она должна возвращать первые p
номера в Knodel последовательности, Kn
.
Это код-гольф , поэтому выигрывает самый короткий код в байтах!
Примеры
1, 6 -> [561, 1105, 1729, 2465, 2821, 6601]
2, 3 -> [4, 6, 8]
4, 9 -> [6, 8, 12, 16, 20, 24, 28, 40, 44]
3, 1 -> [9]
3, 0 -> []
21, 21 -> [45, 57, 63, 85, 105, 117, 147, 231, 273, 357, 399, 441, 483, 585, 609, 651, 741, 777, 861, 903, 987]
m > n
.
4
нет в последовательностиK_4
?i^(4-4) = 1 mod 4
всегда верно.