Тотиент Эйлера и малая теорема Ферма
Теорема Тотанса Эйлера
Теорема Эйлера гласит:
Если n положительно, функция Totient подсчитывает количество натуральных чисел меньше n, взаимно простых с n.
Φ (n) = Totient (n) = {Количество целых чисел ‹n И взаимно простых с n}
Например,
Φ (10) = 4 (1,3,7,9 - числа ‹10 и взаимно просты с 10)
Φ (7) = 6 (1,2,3,4,5 , 6 - числа ‹6 и взаимно просты с 6)
Базовый подход к нахождению счетчика заключается в переходе от 1 к n-1 и проверке, равен ли это НОД с n единицей или нет.
Что будет иметь временную сложность: - O (n log n). n для перехода от i к n и log n для поиска gcd (как? может быть не более log i цифр для каждого i).
Можем ли мы сделать лучше?
Существует формула произведения Эйлера, которая гласит, что значение общих функций меньше произведения по всем простым множителям p из n.
То есть
Φ (n) = n * (1–1 / a) * (1–1 / b) *….
где, a, b, .. - простые множители n.
Здесь мы также можем удалить вычисления с плавающей запятой. Это можно сделать, посчитав все простые множители и их кратные и вычтя это количество из n, чтобы получить значение общей функции.
Эта теорема составляет основу алгоритмов RSA.
А также обобщает теорему Ферма.
Маленькая теорема Ферма
Теорема Ферма утверждает, что если p - простое число, то a ^ p-a делится на a. Где, 1≤a≤p.
a ^ p-1 ≡ 1 mod p.
Маленькая теорема Ферма является основой для проверки простоты Ферма, также мы будем использовать ее для нахождения обратного по модулю в следующих случаях.
Если вы тоже любите числа, как и я, то вам стоит проверить Великую теорему Ферма, тест на простоту Ферма, лживые числа (которые не проходят тест Ферма, даже если оно простое) и числа Кармайкла (которые проходят тест Ферма. тест, даже если он непростой), которые действительно являются умопомрачительными фактами🤩.
Ускорители мозга🧠: -
- Φ (p) = p-1.
Если p - простое число. (почему? НОД, если любое число с простыми числами равно 1.) - Φ (a * b) = Φ (a) * Φ (b).
Если gcd (a, b) = 1. - Φ (p * q) = Φ (p) * Φ (q).
Если p и q - простые числа. Это свойство используется в алгоритме RSA. - Сумма значений общих функций всех делителей n равна n.
Σ Φ (d) = n, где, d | n. - a ^ Φ (p) ≡ 1 mod n
Если gcd (a, n) = 1 и a ‹n. Здесь функция Φ.
Ссылка🔗: -
Https://www.geeksforgeeks.org/eulers-totient-function/
Вот и все. В следующем блоге я расскажу о модульном возведении в степень и модульном обратном умножении.
Следите за обновлениями ... Спасибо ...