Submit solution


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

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

На круговом кодовом замке есть n позиций, пронумерованных числами от 0 до n - 1. Если повернуть диск на a позиций x раз, то итоговая позиция определяется по модулю n.

Известно, что после x одинаковых поворотов на a позиций замок должен оказаться в позиции b. Требуется найти все значения x из диапазона [0, n - 1], при которых это возможно.

Иными словами, нужно найти все целые x из диапазона [0, n - 1], удовлетворяющие условию

a * x ≡ b (mod n).

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

В единственной строке заданы три целых числа a, b, n, разделённых пробелами.

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

В первой строке выведите количество подходящих значений k в диапазоне [0, n - 1].

Во второй строке выведите все такие значения x в порядке возрастания через пробел.

Если решений нет, выведите 0 в первой строке и пустую вторую строку.

Ограничения

  • 0 <= a, b < n
  • 1 <= n <= 10^5

Примеры

Пример 1

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

0 0 7

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

7
0 1 2 3 4 5 6
Пример 2

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

0 5 8

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

0

Комментарии

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