求N以内有多少个和它互质的数
#include<stdio.h>
#include<string.h>
using namespace std;
int f(int a)
{
int ans=1;
for(int i=2;i*i<=a;i++)
{
if(a%i==0)
{
a/=i;
ans*=(i-1);
while(a%i==0)
{
ans*=i;
a/=i;
}
}
}
if(a>1)
ans*=(a-1);
return ans;
}
int main()
{
int T;
while(~scanf("%d",&T))
{
while(T--)
{
int a;
scanf("%d",&a);
printf("%d\n",f(a));
}
}
return 0;
}
浙公网安备 33010602011771号