题目大意 多组数据,每组数据给出一个正整数 \(n\),请求出一组数 \(a_1\cdots a_m\),满足 \(LCM_{k=1}^ma_k=n\) 且 \(\sum_{k=1}^ma_k\) 最小。

分析 我们以两个数为例进行研究。假定 \(LCM(a,b)=n\) 则如果 \(GCD(a,b)\neq 1\),有 \(LCM(\frac{a}{gcd(a,b)},b)=n\),且 \(a+b>\frac{a}{gcd(a,b)}+b\)。故当且仅当 \(gcd(a,b)=1\) 时最优。而对于多个数的情况,也是当且仅当 \(\prod_{k=1}^ma_k=n\) 时最优。而对于正整数 \(a_1\geq 2,a_2\geq2,\cdots,a_m\geq2\),总有 \(\sum_{k=1}^ma_k\leq \prod_{k=1}^ma_k\)。所以如果可以将 \(n\) 质因数分解为 \(n=\prod_{k=1}^mp_k^{q_k}\)(其中 \(\forall i\in\mathbb{N+},p_i\) 为质数),则当且仅当 \(\forall i\in\mathbb{N+},a_i=p_i^{q_i}\) 时有最优解。

#include<bits/stdc++.h>
using namespace std; typedef long long ll; ll t, tot, n, ans;
map<ll, ll> m; ll QuickPow(ll a, ll b)
{
ll res = 1;
while(b) {
if(b & 1) res *= a;
a = a * a, b >>= 1;
}
return res;
} int main()
{
while(~scanf("%lld", &n) && n) {
m.clear(), ans = 0, tot = 0; for(ll i = 2; i * i <= n && n > 1; ++i)
while(n % i == 0) ++m[i], n /= i;
if(n > 1) m[n] = 1; map<ll, ll>::iterator it = m.begin();
while(it != m.end()) {
ans += QuickPow(it->first, it->second);
++it, ++tot;
} if(tot < 2) ans += 2 - tot;
printf("Case %lld: %lld\n", ++t, ans);
}
}

题解 UVa10791的更多相关文章

  1. 题解:UVA10791 Minimum Sum LCM

    原题 题目大意 输入整数\(n(1\le n<2^{31})\) ,求至少两个正整数,是它们的最小公倍数为$ n$,且这些整数的和最小.输出最小的和. 有多组测试输入,以\(0\)结束. 题解 ...

  2. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  3. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  4. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  5. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  6. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  7. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  8. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  9. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

随机推荐

  1. java对象池化技术

    https://blog.csdn.net/tiane5hao/article/details/85957840 文章目录 先写一个简单通用的对象池 通过上面的通用池实现jedis连接池 连接池测试 ...

  2. c和c++中的枚举和 区别

    1.c中的枚举 c语言枚举 void test(){ // enum 枚举类型名字{枚举值, 枚举值, 枚举值}; enum WEEK { Mon, Tue };// 枚举类型定义 enum WEEK ...

  3. AtCoder-abc147 (题解)

    A - Blackjack (水题) 题目链接 大致思路: 水题 B - Palindrome-philia (水题) 题目链接 大致思路: 由于整个串是回文串,只要判断前一半和后一半有多少个不同即可 ...

  4. C语言基础知识---认识C语言

    2019.11.09 秋风 晴 最近一直在搞一套LoRa算法.总算有点效果了.心感慰藉(可能用错词语.但是也不管了) 初学者如何理解C语言? 无需刻板理解,笔者常用一个这样的例子助学生理解:法国人和法 ...

  5. 【EBS】XLA_GLT表的清理

    一.Xla_glt*在出现在日记账导入中的阶段 与R11使用gl_interface表不同,R12中大部分情况下使用的是XLA_GLT_<groupId>表:子帐传送到总账的过程中,会动态 ...

  6. python_三目运算

    首先确定三目运算的使用条件, if只有两个才能用三目  只有 if:else:    先写个if else的小例子: if push == "lpush": self.conn.l ...

  7. CapsLock Enhancement via AutoHotKey

    上次写了一篇博文,讲如何通过AutoHotKey改造CaspLock,使其成为一个方便的编辑按键,并特意给出了设计的思路方便参考. 见地址:http://www.cnblogs.com/Vonng/p ...

  8. Springcloud的版本依赖问题(最全,包含springCloud所有的版本)

    版权声明:本文为博主原创文章,遵循CC 4.0 BY版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_42105629/article/detai ...

  9. Flanne

    容器面临的问题 物理机A上的应用A看到的IP地址是容器A的,是172.17.0.2,在物理机B上的应用B看到的IP地址是容器B的,不巧也是172.17.0.2,当它们都注册到注册中心的时候,注册中心就 ...

  10. Spring中的ApplicationListener的使用详解案例

    本文链接:https://blog.csdn.net/u010963948/article/details/83507185 1.ApplicationContext Spring的核心,Contex ...