Skip to content

Latest commit

 

History

History

182.Закрытый_ключ

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
  1. Закрытый ключ

Во всех крупных IT-компаниях немалое внимание уделяется вопросам информационной безопасности, и Яндекс не является исключением.

Дима и Егор разрабатывают новый сервис YD (Yandex Dorogi) и в данный момент занимаются аудитом его безопасности. Для шифрования пользовательских данных в YD используется алгоритм шифрования с открытым ключом YS (Yandex Shifrovatel).

Схема работы алгоритма YS такова: для каждого сервиса генерируется закрытый ключ (p,q), где p и q — натуральные числа. По закрытому ключу (p,q) генерируется открытый ключ (НОД(p,q), НОК(p,q)), который доступен всем пользователям. Если злоумышленник сможет по открытому ключу получить закрытый ключ, то он получит доступ ко всем данным YD и нанесёт сервису непоправимый вред. Конечно же, Егор и Дима не хотят этого допустить, поэтому они хотят сделать так, чтобы злоумышленнику пришлось перебрать очень много вариантов открытого ключа, прежде чем он сможет его угадать.

Дима уже сгенерировал закрытый ключ для YD и получил на его основе открытый ключ (x,y). Егору сразу же стало интересно, сколько вариантов закрытого ключа придётся перебрать злоумышленнику для взлома YD в худшем случае, иными словами, сколько существует закрытых ключей (p,q) таких, что открытым ключом для них является (x,y). К сожалению, у Егора есть много других задач, очень важных для запуска YD, поэтому он просит вас вычислить это количество за него.

Формат ввода

В первой строке содержатся два целых числа x и y (1≤x≤y≤1012) — описание открытого ключа.

Формат вывода

Выведите одно целое число — количество закрытых ключей, для которых данный ключ является открытым.

Решение