思路:欧拉函数裸题,可以知道欧拉函数是用来求1~n中与n互质的数的个数。
#include<stdio.h>
#include<stdlib.h>
int eular(int n)
{
int ret=1,i;
for(i=2;i*i<=n;i++)
{
if(n%i==0)
{
n/=i,ret*=i-1;
while(n%i==0) n/=i,ret*=i;
}
}
if(n>1) ret*=n-1;
return ret;
}
int main ()
{
int n,s;
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
s=eular(n);
printf("%d\n",s);
}
return 0;
}