[poj 2480] Longge's problem 解题报告 (欧拉函数)

Posted xxzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[poj 2480] Longge's problem 解题报告 (欧拉函数)相关的知识,希望对你有一定的参考价值。

题目链接: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
",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
",ans);
    }
    return 0;
}

以上是关于[poj 2480] Longge's problem 解题报告 (欧拉函数)的主要内容,如果未能解决你的问题,请参考以下文章

题解报告:poj 2480 Longge's problem(欧拉函数)

[poj 2480] Longge's problem 解题报告 (欧拉函数)

poj2480 Longge's problem

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

poj 2480

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