Линейное сравнение
Просмотр в формате PDFРазрабатывается теоретико-числовая утилита, которая умеет решать линейные сравнения вида a x ≡ b (mod n) и выводить все допустимые значения x.
Даны три целых числа a, b, n (n > 0). Требуется определить все целые x из диапазона [0, n - 1], для которых выполняется сравнение
a * x ≡ b (mod n).
Утилита должна вывести количество таких значений и сами корни в порядке возрастания.
Входные данные
В единственной строке через пробел заданы три целых числа a, b, n.
Выходные данные
В первой строке выведите количество решений k сравнения среди чисел из диапазона [0, n - 1].
Во второй строке выведите все найденные решения в порядке возрастания, через пробел. Если решений нет (k = 0), вторую строку всё равно нужно вывести — пустой.
Ограничения
0 <= a, b < n1 <= n <= 10^5
Примеры
Пример 1
Входные данные
0 0 1
Выходные данные
1
0
Пример 2
Входные данные
4 3 6
Выходные данные
0
(После строки 0 следует пустая вторая строка, поскольку решений нет.)
Комментарии