欧拉函数的相关应用 noj欧拉函数求和+noj 最大公约数求和
生活随笔
收集整理的這篇文章主要介紹了
欧拉函数的相关应用 noj欧拉函数求和+noj 最大公约数求和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
注意求歐拉函數之和是每個因子的歐拉函數之和不是質因子。而歐拉函數的值是它本身與它的因子件事互質的關系,這樣的因子有多少個。點擊打開鏈接
#include<stdio.h> #include<string.h> #include<math.h> int eular(int n) {int ret=1,i;for(i=2;i*i<=n;i++)if(n%i==0){n/=i,ret*=i-1;while(n%i==0)n/=i,ret*=i;}if(n>1)ret*=n-1;return ret; } int main() {int n,i;while(~scanf("%d",&n)){int s=1;if(n==1){printf("0\n");continue;}for(i=2;i*i<=n;i++){if(n%i==0){s+=eular(i);if(n/i!=i)s+=eular(n/i);}}printf("%d\n",s);}return 0; }點擊打開鏈接
#include<stdio.h> #include<string.h> int eular(int n) {int ret=1,i;for(i=2;i*i<=n;i++)if(n%i==0){n/=i,ret*=i-1;while(n%i==0)n/=i,ret*=i;}if(n>1)ret*=n-1;return ret; }int main() {int t;while(~scanf("%d",&t)){int i;long long sum=0;for(i=1;i*i<=t;i++){if(t%i==0){if(t/i==i)sum+=eular(i)*i;else{sum+=eular(t/i)*i;sum+=eular(i)*(t/i);}}}printf("%lld\n",sum);}return 0; }
?
總結
以上是生活随笔為你收集整理的欧拉函数的相关应用 noj欧拉函数求和+noj 最大公约数求和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hud 敌兵布阵 --线段树的插点问线
- 下一篇: 博弈之 取石子1——6)