https://www.51nod.com/Challenge/Problem.html#!#problemId=1136
對正整數n,歐拉函數是少於或等於n的數中與n互質的數的數目。此函數以其首名研究者歐拉命名,它又稱為Euler's totient function、φ函數、歐拉商數等。例如:φ(8) = 4(Phi(8) = 4),因為1,3,5,7均和8互質。
輸入一個數N。(2 <= N <= 10^9)
輸出Phi(n)。
8
4
φ(n) = n*(1-1/p1)*(1-1/p2)*......(1-1/pn) 其中(p1.....pn)為N的素因子
#include<stdio.h>
int main()
{
long long n,i,sum;
scanf("%lld",&n);
sum=n;
for(i=2;i*i<=n;i++)
{
if(n%i==0)
{
sum-=sum*1/i;
while(n%i==0)
n/=i;
}
}
if(n!=1)
sum-=sum*1/n;
printf("%lld\n",sum);
return 0;
}
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。