欧拉函数

来源:互联网 发布:拾柒网络 编辑:程序博客网 时间:2024/06/10 21:40

定义:对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。例如:φ(8) = 4(Phi(8) = 4),因为1,3,5,7均和8互质。

模板:

ll euler_phi(ll n)//欧拉函数  {      ll ans=n,i;      for(i=2; i*i<=n; i++)      {          if(n%i==0)          {              ans=ans/i*(i-1);              while(n%i==0)n=n/i;          }      }      if(n>1)ans=ans/n*(n-1);      return ans;  } 

程序:

#include<stdio.h>#include<algorithm>using namespace std;#define ll long longll euler_phi(ll n);int main(){ll n;while(scanf("%lld",&n)!=EOF)printf("%lld\n",euler_phi(n));}ll euler_phi(ll n)//欧拉函数  {      ll ans=n,i;      for(i=2; i*i<=n; i++)      {          if(n%i==0)          {              ans=ans/i*(i-1);              while(n%i==0)n=n/i;          }      }      if(n>1)ans=ans/n*(n-1);      return ans;  }  


0 0
原创粉丝点击