Линейное сравнение

Просмотр в формате PDF

Submit solution


Очки: 160
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Автор:
Problem types
Allowed languages
C++, Python

Разрабатывается теоретико-числовая утилита, которая умеет решать линейные сравнения вида 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 < n
  • 1 <= n <= 10^5

Примеры

Пример 1

Входные данные

0 0 1

Выходные данные

1
0
Пример 2

Входные данные

4 3 6

Выходные данные

0

(После строки 0 следует пустая вторая строка, поскольку решений нет.)


Комментарии

Еще нет ни одного комментария.