题目大意:
求小于n且与n互质的数的个数
解题思路:
欧拉函数的应用
代码如下:
#include<iostream>
using namespace std;
int phi(int n)
{
int i,res=n;
for(i=2;i*i<=n;i++)
{
if(n%i==0)
{
res=res-res/i;
n=n/i;
while(n%i==0)
n=n/i;
}
}
if(n!=1)
res=res-res/n;
return res;
}
int main()
{
int n;
while(scanf("%d",&n)&&n)
{
printf("%d\n",phi(n));
}
return 0;
}