Китайская теорема об остатках может быть весьма полезным в модульной арифметике.
Например, рассмотрим следующий набор конгруэнтных отношений:
Для множеств конгруэнции отношений , как это, где все основания ( 3, 5, 7в данном примере) являются совместно простым друг с другом, там будет одно и только одно целым числом nмежду 1и продукт оснований ( 3*5*7 = 105в этом примере) включительно , которая удовлетворяет соотношения ,
В этом примере число будет 14сгенерировано по следующей формуле:
где 2, 4, and 0приведены из приведенного выше примера.
70, 21, 15являются коэффициенты формулы и они зависят от оснований, 3, 5, 7.
Для вычисления коэффициентов формулы ( 70, 21, 15в нашем примере) для набора базисов мы используем следующую процедуру.
Для каждого номера aв наборе основ:
- Найдите произведение всех других основ, обозначенных как
P. - Найдите первое кратное,
Pкоторое оставляет остаток от1деления наa. Это коэффициентa.
Например, чтобы вычислить коэффициент, который соответствует основанию 3, мы находим произведение всех других оснований (то есть 5*7 = 35), а затем находим первое кратное этого произведения, которое оставляет остаток от 1деления на основание.
В этом случае 35оставляет остаток от 2деления на 3, но 35*2 = 70оставляет остаток от 1деления на 3, 70как и соответствующий коэффициент для 3. Точно так же 3*7 = 21оставляет остаток от 1деления на 5и 3*5 = 15оставляет остаток от 1деления на 7.
В двух словах
Для каждого номера aв наборе номеров:
- Найдите произведение всех других чисел, обозначенных как
P. - Найдите первое кратное,
Pкоторое оставляет остаток от1деления наa. Это коэффициентa.
Соревнование
- Задача состоит в том, чтобы для набора из двух или более баз найти набор соответствующих коэффициентов.
- Множество оснований, как гарантируют, будут попарно взаимно простыми, и каждое основание, как гарантируют, будет больше чем 1.
- Ваши входные данные представляют собой список целых чисел в виде
[3,4,5]строки ввода или строки, разделенных пробелами,"3 4 5"или же ваши входные данные работают. - Ваш вывод должен быть либо списком целых чисел, либо строкой через пробел, которая обозначает набор коэффициентов.
Контрольные примеры
input output
[3,5,7] [70,21,15]
[2,3,5] [15,10,6]
[3,4,5] [40,45,36]
[3,4] [4,9]
[2,3,5,7] [105,70,126,120]
[40,27,11] [9801,7480,6480]
[100,27,31] [61101,49600,56700]
[16,27,25,49,11] [363825,2371600,2794176,5583600,529200]
Большое спасибо Leaky Nun за помощь в написании этой задачи. Как всегда, если проблема неясна, пожалуйста, дайте мне знать. Удачи и хорошего гольфа!





