题意:求n的欧拉函数。
题目链接:http://poj.org/problem?id=2407
——>>欧拉函数的模版题吧。
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int n;
while(~scanf("%d", &n))
{
if(!n) return 0;
int m = (int)sqrt(n+0.5), ans = n;
for(int i = 2; i <= m; i++) if(n % i == 0)
{
ans = ans / i * (i-1);
while(n % i == 0) n /= i;
}
if(n > 1) ans = ans / n * (n-1);
printf("%d\n", ans);
}
return 0;
}