我只想说数据弱爆了,这也可以过
欧拉函数求和
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
-
题目描述很简单,求出(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; }
时间: 2024-11-23 07:06:01