@misantropisk

Прошу продемонстрировать рекурсивный алгоритм нахождения функции Эйлера(желательно на C/C++, но можно и на псевдокоде)?

Прошу продемонстрировать рекурсивный алгоритм нахождения функции Эйлера(желательно на C/C++, но можно и на псевдокоде)?
  • Вопрос задан
  • 3234 просмотра
Пригласить эксперта
Ответы на вопрос 1
gbg
@gbg
Любые ответы на любые вопросы
Функцию НОД - алгоритм Евклида - напишите самостоятельно
typedef long long int enatural;
enatural _euler(enatural n,enatural k)
//шаг рекурсии. n - счетчик по всем числам от 1 до k и условие остановки рекурсии
//k - число, для которого вычисляем функцию Эйлера
{
   //функция Эйлера от 1 равна 1
   if(n==1)
   {
       return(1);
   }
   //функция Эйлера в рекурсивном варианте - если n взаимно просто с k, то она равна 1+(функция Эйлера от n-1)
   if(nod(n,k)==1) //если число взаимно просто, увеличиваем количество
   {
       return(1+_euler(n-1,k));
   }
   //в противном случае она просто равна функции Эйлера от n-1
   return(_euler(n-1,k));
}
enatural euler(enatural n)
{
    return(_euler(n,n));
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы