Poj2480欧拉函数
生活随笔
收集整理的這篇文章主要介紹了
Poj2480欧拉函数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
枚舉n的約數(shù)d,∑d*phi(d) 就是所求答案,剩下的就是參考別人的證明。
化簡 p^i*phi(p^(k-i)) 可得 p^k - p^(k-1) ,注意特判 k==i的情況,注意LL。
#define _CRT_SECURE_NO_WARNINGS #pragma comment(linker, "/STACK:102400000,102400000") #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #include <string> #include <vector> #include <cmath> #include <queue> #include <map> #include <set> using namespace std;typedef long long LL;LL gao( LL sum, LL k, LL p) {LL ans = 0;LL t = sum;ans += k*(t - t/p);ans += t;return ans; }int main() {LL n; // n = 1<<31; // cout<<n<<endl;while(scanf("%I64d",&n)!=EOF){LL t = n; LL ans = 1;for( LL i = 2;i*i<=t;i++){if(t%i) continue;LL cnt =0; LL sum = 1;while(t%i==0){t/=i;cnt++;sum*=i;}ans *= gao(sum,cnt,i);}if(t>1) ans*=gao(t,1,t);printf("%I64d\n",ans);}return 0; }?
轉(zhuǎn)載于:https://www.cnblogs.com/yigexigua/p/4756909.html
總結(jié)
以上是生活随笔為你收集整理的Poj2480欧拉函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python pip – error:
- 下一篇: exists改写SQL,使其走正确的执行