欧拉函数φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。 (注意:每种质因数只一个。比如12=2*2*3
那么φ(12)=12*(1-1/2)*(1-1/3)=4)
#include "stdio.h"
int prime[10000]={1,2,3};
int main()
{
int t;
int n;
int count;
int i,k=3,j,ok;
for(i=4;i<32768;i++)
{
ok=1;
for(j=1;j<k;j++)
{
if(i%prime[j]==0)
{
ok=0;
break;
}
}
if(ok)
prime[k++]=i;
}
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
count=n;
for(i=1;i<n&&i<k;i++)
{
if(n%prime[i]==0)
count=count/prime[i]*(prime[i]-1);
}
printf("%d\n",count);
}
return 0;
}