51Nod 1136:欧拉函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41505957/article/details/84717228

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;
}

猜你喜欢

转载自blog.csdn.net/qq_41505957/article/details/84717228