добавлено: 10 Jun 2008 10:57 редактировано: 18 Oct 2011 20:20 Функция Эйлера Определение Функция Эйлера (иногда обозначаемая или ) — это количество чисел от до , взаимно простых с . Иными словами, это количество таких чисел в отрезке , наибольший общий делитель которых с равен единице. Несколько первых значений этой функции (A000010 в энциклопедии OEIS): 




Свойства Три следующих простых свойства функции Эйлера — достаточны, чтобы научиться вычислять её для любых чисел: - Если
— простое число, то .(Это очевидно, т.к. любое число, кроме самого , взаимно просто с ним.) - Если
— простое, — натуральное число, то .(Поскольку с числом не взаимно просты только числа вида , которых штук.) - Если
и взаимно простые, то ("мультипликативность" функции Эйлера).(Этот факт следует из китайской теоремы об остатках. Рассмотрим произвольное число . Обозначим через и остатки от деления на и соответственно. Тогда взаимно просто с тогда и только тогда, когда взаимно просто с и с по отдельности, или, что то же самое, взаимно просто с и взаимно просто с . Применяя китайскую теорему об остатках, получаем, что любой паре чисел и взаимно однозначно соответствует число , что и завершает доказательство.)
Отсюда можно получить функцию Эйлера для любого через его факторизацию (разложение на простые сомножители): если ![n = p_1^{a_1} \cdot p_2^{a_2} \cdot \ldots \cdot [...]](../tex2png/cache/3d3e83493513e2058c3835f438a7a37b.png)
(где все — простые), то ![\phi(n) = \phi(p_1^{a_1}) \cdot \phi(p_2^{a_2}) \[...]](../tex2png/cache/146722a63b75ce3841aae9cb02f06cac.png)
![= (p_1^{a_1} - p_1^{a_1-1}) \cdot (p_2^{a_2} - p_[...]](../tex2png/cache/589f0d28922891ee426452eba24e3af1.png)
![= n \cdot \left( 1-{1\over p_1} \right) \cdot \le[...]](../tex2png/cache/3ca03d151f2c44851d626e5a6c9df921.png)
Реализация Простейший код, вычисляющий функцию Эйлера, факторизуя число элементарным методом за : int phi (int n) {
int result = n;
for (int i=2; i*i<=n; ++i)
if (n % i == 0) {
while (n % i == 0)
n /= i;
result -= result / i;
}
if (n > 1)
result -= result / n;
return result;
} Ключевое место для вычисление функции Эйлера — это нахождение факторизации числа . Его можно осуществить за время, значительно меньшее : см. Эффективные алгоритмы факторизации. Приложения функции Эйлера Самое известное и важное свойство функции Эйлера выражается в теореме Эйлера:  где и взаимно просты.В частном случае, когда простое, теорема Эйлера превращается в так называемую малую теорему Ферма: 
Теорема Эйлера достаточно часто встречается в практических приложениях, например, см. Обратный элемент в поле по модулю. Задачи в online judges Список задач, в которых требуется посчитать функцию Эйлера,либо воспользоваться теоремой Эйлера, либо по значению функции Эйлера восстанавливать исходное число: powered by e-maxx.ru |