这两个题几乎一样。。输入格式上有些差别。。其余基本一样的。。。欧拉函数的应用。。白皮书 185 页有详细解释。。注意的是 输入数据比较大 用long long来存,。
333代码: 291就不贴了。。
#include<stdio.h>
#include<math.h>
int main()
{
long long a,b,n,m;
while(scanf("%lld",&n)!=EOF)
{
long long sum=n;
for(a=2;a<=sqrt(n+0.5);a++)
{
if(n%a==0)
{
sum=sum*(a-1)/a;
while(n%a==0)
n=n/a;
}
}
if(n>1)
sum=sum*(n-1)/n;
printf("%lld\n",sum);
}
}