1. Главная
  2. Библиотека
  3. Высшая математика
  4. Валентина и Дмитрий обмениваются секретными сообщениями...
Разбор задачи

Валентина и Дмитрий обмениваются секретными сообщениями. Каждое отправленное ими сообщение содержит одно число — настоящую информацию, которой они хотят поделиться. Чтобы злоумышленник не смог прочитать настоящее число, они заранее договорились об одном

  • Предмет: Высшая математика
  • Автор: Кэмп
  • #Дискретная математика
  • #Теория чисел
Валентина и Дмитрий обмениваются секретными сообщениями. Каждое отправленное ими сообщение содержит одно число — настоящую информацию, которой они хотят поделиться. Чтобы злоумышленник не смог прочитать настоящее число, они заранее договорились об одном

Условие:

Валентина и Дмитрий обмениваются секретными сообщениями. Каждое отправленное ими сообщение содержит одно число — настоящую информацию, которой они хотят поделиться.
Чтобы злоумышленник не смог прочитать настоящее число, они заранее договорились об одном секретном простом числе P. Перед отправкой сообщения отправитель не передает настоящее число x напрямую. Вместо этого он передает замаскированное значение.\nm = x * P
Таким образом, каждое перехваченное сообщение представляет собой произведение общего секретного простого числа P и некоторого действительного числа x (действительные числа различаются от сообщения к сообщению и никогда не раскрываются).
Вы — перехватчик. Вы перехватили несколько таких замаскированных сообщений. Ваша задача — вернуть секретный главный ключ P.
Имеются n перехваченные сообщения m_1, m_2, ..., m_n, где каждое из них\nm_i = x_i * P
для некоторого положительного целого числа x_i (неизвестного вам) и того же секретного простого числа P восстановите P.
Гарантируется, что:\nP является простым числом,
Каждое сообщение делится на P,
Эти числа, x_i взятые вместе, не имеют общего простого множителя.
Ограничения
2 <= n <= 100
2 <= m_i <= 10^18\nP является простым числом и 2 <= P <= 10^18.
Формат ввода
Первая строка содержит одно целое число n — количество перехваченных сообщений (2 <= n <= 100).
Вторая строка содержит n целые числа, разделённые пробелами m_1 m_2 ... m_n — перехваченные сообщения (2 <= m_i <= 10^18).
Формат вывода
Выведите одно целое число — секретное простое число P.

Решение:

Дано

  • Количество сообщений: nn (2n1002 \le n \le 100).
  • Перехваченные сообщения: m1,m2,,mnm_1, m_2, \dots, m_n, где каждое mi=xiPm_i = x_i \cdot P.
  • PP — простое число.
  • Числа xix_i не имеют общего простого делителя (это означает, что наибольший общий делитель всех mim_i равен именно PP).

Найти

  • Секретное простое число PP.

Решение

Так как каждое сообщение mim_i представимо в виде mi=xiPm_i = x_i \cdot P, то PP является общим делителем для всех чисел m1,m2,,mnm_1, m_2, \dots, m_n.

Согласно условию, числа xix_i...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какой математический метод является наиболее подходящим для нахождения секретного простого числа P, если известно, что оно является общим делителем всех перехваченных сообщений m_i, и что частные x_i (m_i / P) не имеют общих простых множителей?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет