给定整数n,求n的欧拉函数的值
多组数据 每行一个整数,表示n( 1 <= n <= 1,000,000,000) 一个0,表示输入结束
每行输入一个整数,表示对应的n的欧拉函数值
7 12 0
6 4
要解决这道题,我们先来了解什么是欧拉函数和欧拉定理。
欧拉函数
n=
欧拉定理: 若a与m互质,则
所以,我们就得出了欧拉计算函数。
int euler(int n){ int m=int(sqrt(n+0.5)),ans=n; for(int i=2;i<=m;i++) if(n%i==0){ ans=ans/i*(i-1); while(n%i==0) n/=i; } if(n>1) ans=ans/n*(n-1); return ans;}新闻热点
疑难解答