Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Обратный элемент

(Время: 1 сек. Память: 16 Мб Сложность: 73%)

Кольцо вычетов – система операций сложения и умножения над целыми числами по модулю m. Все операции и их результат представляются числами диапазона от 0 до m-1.

Обратный элемент числа a в кольце вычетов по модулю m – это такое число a-1, что aa-1=1.

Требуется определить обратный элемент для числа a в кольце вычетов по модулю m.

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

Входной файл INPUT.TXT содержит целые числа a и m – число и основание кольца вычетов (0 ≤ a < m ≤ 109, m>1).

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

В выходной файл OUTPUT.TXT выведите значение обратного элемента для числа a, если он существует в кольце вычетов по модулю m. В противном случае выведите «No solution».

Примеры

INPUT.TXTOUTPUT.TXT
17 103
23217 1638413425
34 16No solution

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 Тренировочные олимпиады
 Введение
 Целочисленная арифметика
 Алгоритмы сортировки
 Длинная арифметика
 C++ Standard Template Library
 Динамическое программирование
 Комбинаторика
 Вычислительная геометрия
 Строки
 Структуры данных
 Теория графов - 1
 Теория графов - 2
 Простые задачи
 Алгоритмы на строках
 Полиномиальный хеш
 A. Функция Эйлера
 B. Обратный элемент
 C. Хеш-функция
 D. Взлом хеш-функции
 E. Рекламный щит
 F. Минимальный сдвиг
 G. Слова
 H. Строки - 3
 I. Подпалиндромы
 J. Циклические сдвиги

Красноярский краевой Дворец пионеров, (c)2006 - 2019, E-mail: admin@acmp.ru