Шифр-замок
Просмотр в формате PDFНа круговом кодовом замке есть 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 < n1 <= n <= 10^5
Примеры
Пример 1
Входные данные
0 0 7
Выходные данные
7
0 1 2 3 4 5 6
Пример 2
Входные данные
0 5 8
Выходные данные
0
Комментарии