标签:
我只想说数据弱爆了,这也可以过
题目描述很简单,求出
(PS:上面式子的意思是大于0小于n并且能整除n的所有d的欧拉函数值之和)。
#include<stdio.h> int euler(int n) { int ret=n,i; for(i=2;i*i<=n;i++) if(n%i==0) { ret=ret-ret/i; while(n%i==0) n/=i; } if(n>1) ret=ret-ret/n; return ret; } int main() { int n,i; while(~scanf("%d",&n)) { int sum=0; for(i=1;i*i<=n;i++) { if(n%i==0) { if(i!=n) sum += euler(i); if(i*i != n && i != 1) sum += euler(n/i); } } printf("%d\n",sum); } return 0; }
标签:
原文地址:http://blog.csdn.net/qq_16767427/article/details/44835017