[poj 2480] Longge's problem 解題報告 (歐拉函數)
阿新 • • 發佈:2018-09-14
ios ons src names def ref 技術 esp ++
題目鏈接:http://poj.org/problem?id=2480
題目大意:
題解:
我一直很欣賞數學題完美的復雜度
#include<cstring> #include<algorithm> #include<cstdio> #include<iostream> #include<cmath> using namespace std; typedef long long ll; const int N=(1<<31)+15; ll n; int main() { //printf("%lld\n",phi(3));while (scanf("%lld",&n)!=EOF) { ll ans=n; for (ll i=2;i*i<=n;i++) { if (n%i) continue; //if (i==1) ans++; ll j=0; while (n%i==0) n/=i,j++; ans/=i; ans*=(i-1)*j+i; }if (n>1) { ans/=n; ans*=2*n-1; } printf("%lld\n",ans); } return 0; }
[poj 2480] Longge's problem 解題報告 (歐拉函數)