spoj LCM Sum

原创 2016年08月30日 18:04:08

一个数论定理 对于n >= 2 小于它与它互质的数的和 为 n*phi*(n)/2
然后lcm(a,b) = a * b / gcd(a, b)
时间太紧 所以打表预处理枚举每个数然后找到每个能整除它的数加上一部分欧拉函数的和

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<iostream>
#include<cmath>
#define maxn 1000005
#define LL long long
using namespace std;
// 欧拉函数3
LL eular[maxn];
LL prime[maxn][15],num[maxn],flag[maxn],AM = 0;

void Eorue(){
    eular[1] = 1;
    for(LL i = 2;i < maxn; i++){
        if(eular[i] == i){
            eular[i] = i - 1;
            for(LL j = 2; j * i < maxn; j++){
                eular[i * j] = eular[i * j] * (i - 1) / i;
            }
        }
        //eular[i] += eular[i-1];
    }
}
LL ans[maxn];
int main()
{
    for(LL i = 1; i < maxn; i++) eular[i] = i;
    Eorue();
    for(LL i = 1; i <= 1000000; i++)
        for(LL j = 1; j * i <= 1000000; j++)
         {
            if(j != 1)ans[j * i] += j * i * (eular[j] * j / 2ll);
            else ans[j * i] += j * i;
         }
    int t;
    scanf("%d", &t);
    while(t--)
    {
        int n;
        scanf("%d", &n);
        printf("%lld\n", ans[n]);
    }
    return 0;
}
//277811686426000000

SPOJ 5971 lcm sum

题目链接:https://www.spoj.pl/problems/LCMSUM/ SPOJ Problem Set (classical) 5971. LCM Sum Problem co...

SPOJ 5971 LCM Sum 欧拉函数 (或 莫比乌斯反演?)

题目大意: 这个题我的选择的方法比较直观

【SPOJ】【P5971】【LCM Sum】【题解】【数论】

传送门:http://www.spoj.com/problems/LCMSUM/

【SPOJ-LCM】The Time of Day【计数DP】【离散化】

题意: 从1到n这n个数中选出一些数,使得它们的lcm不小于M。(n 暴力枚举O(2^n)肯定不行,所以用质因数分解优化一下。 先预处理出lcm(1, 2, ..., 40)的质因数分...

UVa 10791 - Minimum Sum LCM (数论 推理)

Minimum Sum LCM Crawling in process... Description   Minimum ...

UVa 10791 Minimum Sum LCM(分解质因数)

假设输入N=p1^a1*p2^p2*....*pn^an,那么能得到它的数中对于质数pi至少有一个数含有因子pi^ai,对质因数pi,pj而言,满足这两个数有两种方法,要么这两个因子在一个数中,要么分...

UVA 10791 - Minimum Sum LCM(因子分解)

题目链接10791 - Minimum Sum LCM题目分析水题,刚开始看错题目了,以为和经典题目GCD&LCM一样,原来只需要求至少这么多个因数和相加最小.显然就是把所有的priip_i^{r_i...

uva 10791 Minimum Sum LCM ( 唯一分解定理 )

使用唯一分解定理的时候不一定要打出素数表,这句话是相对上一篇来讲的。做这道题目之前我对唯一分解定理方法的理解不完全。 现在多想到了一些 唯一分解,将当前需要分解的n用因子将其分解表达。需要试因子。...

uva 10791 Minimum Sum LCM

uva 10791 Minimum Sum LCM

UVaOJ-10791-Minimum Sum LCM 解题报告

分解质因数题。题意:现在给你一个数,然后请你找到两个或两个以上的数,使得它们的最小公倍数是给你的这个数,要求你找到的几个数的和尽量小,输出这个和。        我的解题思路:看起来很难的样...
  • JZQT_T
  • JZQT_T
  • 2015年01月23日 10:54
  • 507
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spoj LCM Sum
举报原因:
原因补充:

(最多只允许输入30个字)