poj2480 Longge's problem

Posted poorpool

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj2480 Longge's problem相关的知识,希望对你有一定的参考价值。

欲求 \(\sum_{i=1}^n (i,n)\)

显然 \((i,n) \mid n\)。记 \(d=(i,n)\),枚举 \(d\),有多少个 \(i \in [1,n]\) 使得 \((i,n)=d\) 呢?换句话说有多少个 \(i \in [1,\lfloor n/d \rfloor]\) 使得 \((i,\lfloor n/d \rfloor) = 1\) 呢?显然是 \(\varphi(\lfloor n/d \rfloor)\) 个。

答案就是 \(\sum_{d|n}d\cdot \varphi(n/d)\)

#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
ll n, T;
ll ans;
ll phi(ll x){
    ll re=x;
    for(ll i=2; i*i<=x; i++)
        if(x%i==0){
            re = re / i * (i - 1);
            while(x%i==0)   x /= i;
        }
    if(x>1) re = re / x * (x - 1);
    return re;
}
int main(){
    while(scanf("%d", &n)!=EOF){
        ans = 0;
        for(ll i=1; i*i<=n; i++)
            if(n%i==0){
                ans += (ll)i * phi(n/i);
                if(i*i!=n)  ans += (ll)(n/i) * phi(i);
            }
        printf("%lld\n", ans);
    }
    return 0;
}

以上是关于poj2480 Longge's problem的主要内容,如果未能解决你的问题,请参考以下文章

poj2480 Longge's problem

POJ 2480 Longge's problem

POJ 2480 Longge&#39;s problem 积性函数

poj 2480 Longge&#39;s problem 积性函数性质+欧拉函数

Longge's problem(欧拉函数应用)

Longge's problem ( gcd的积性)