题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286
//欧拉函数:设m是一个正整数,则0-(m-1)之间与m互素的整数的个数
//m=p1^a1*p1^a2~~pi^ai~~pk^pk;
//p1~~pk都为素数,则欧拉函数φ(m)=m*(1-1/p1)*(1-1/p2)~(1-1/pi)~(1-1/pk) [相乘]
#include<stdio.h>
#include<string.h>
int prim[32780],p;
int Prim()
{
int i,j;p=1;
for(i=2;i<=32770/2;i++)
for(j=2*i;j<=32770;j+=i)
prim[j]=1;
for(i=2;i<=32770;i++)
if(!prim[i])
prim[p++]=i;
}
int main()
{
int T,i;
memset(prim,0,sizeof(prim));
Prim();
scanf("%d",&T);
while(T--)
{
int N,n,k;
scanf("%d",&N);
n=N;
for(i=1;i<3513;i++)
{
if(N!=1&&N%prim[i]==0)
{
while(N%prim[i]==0)
{
N=N/prim[i];
k=prim[i];
}
n=n-n/k;
}
}
printf("%d\n",n);
}
}