码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-09-14 15:58:15      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:ios   problem   分享图片   png   type   bubuko   题目   链接   .com   

题目链接: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 解题报告 (欧拉函数)

标签:ios   problem   分享图片   png   type   bubuko   题目   链接   .com   

原文地址:https://www.cnblogs.com/xxzh/p/9646588.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!