靠靠靠一开始少考虑了一种情况,先tle后re。。。
总体来说还是水题
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#define LL long long
using namespace std;
LL n;
LL work(LL x)
{
LL w=x;
LL ans=x;
for(int i=2;i*i<=w;i++)
//printf("%d\n",x%i);
//int i;
if(0==x%i)
{
while(0==x%i)
x/=i;
ans=ans*(i-1)/i;
}
if(x!=1)
ans=ans*(x-1)/x;
return ans;
}
int main()
{
scanf("%lld",&n);
while(n)
{
printf("%lld\n",work(n));
scanf("%lld",&n);
}
return 0;
}