4.13

Posted on 2016-04-13 12:50  青衣小女孩  阅读(106)  评论(0)    收藏  举报

求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;
}