Требуется простой шаблон программы на Python (a + b) - PullRequest
0 голосов
/ 05 января 2019

С учетом чисел a и b. Вам нужно найти их количество и распечатать. Пожалуйста, предоставьте шаблон для такой программы на python.

1 Ответ

0 голосов
/ 05 января 2019

В основном нам нужно выяснить, существует ли целое число k такое, что для всех i,

k mod l[i] = d[i],

и дано, что сумма l[i] равна n. Из теории чисел мы знаем, что если l[i] = f * g, f и g относительно простые, то уравнение

k mod l[i] = d[i]

эквивалентно уравнению

k mod f = d[i] mod f
k mod g = d[i] mod g.

Наша цель состоит в том, чтобы разложить d[i] в простые степени и проверить, что система уравнений разрешима для каждой простой степени.


Чтобы учесть l[i] по времени O(n), мы можем просто использовать пробное деление, так как время выполнения будет порядка

sum_i √l[i] ≤ sum_i l[i] = n.

Единственная другая часть объединяет два уравнения

k mod p^e = r
k mod p^f = s

для некоторой переменной k и заданного простого p, показателей e ≥ f и остатков r и s. С p^f|p^e это легко. Мы просто проверяем, что r mod p^f = s (для согласованности), а затем второе уравнение является избыточным. Если мы достигнем одного простого уравнения степени без раскрытия несогласованности, то система разрешима относительно этой основной степени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...