欧拉phi函数与欧拉定理

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

欧拉phi函数

欧拉phi(x)函数等于不超过x且和x互素的整数个数。

欧拉phi函数证明:




附代码:

#include<stdio.h>
#include<string.h>
#include<math.h>
#define MAXN 1010
int phi[MAXN];
int euler_phi(int n)
{
	int m=sqrt(n+0.5);
	int 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;
}
void phi_table(int n)//打表
{
	memset(phi,0,sizeof(phi));
	phi[1]=1;
	for(int i=2;i<=n;i++)
	{
		if(!phi[i])
		{
			for(int j=i;j<=n;j+=i)
			{
				if(!phi[j])phi[j]=j;
				phi[j]=phi[j]/i*(i-1);
			}
		}
	}
}
int main()
{
	int n;
	while(scanf("%d",&n),n)
	{
		printf("%d\n",euler_phi(n));
		phi_table(n);
	}
	return 0;
}


欧拉定理




费马小定理是欧拉定理的特殊情况。

 假如p是质数,且gcd(a,p)=1,那么 a^(p-1) ≡1mod p)。即:假如a整数,p质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1


求小于等于N的与N互质的数的和

ans=N*phi(N)/2;


阅读更多
换一批

没有更多推荐了,返回首页