数论 UVA 10791
这道题目是关于满足同意最小公倍数的所有数对中两数之和的最小值。
题目大意是给你一个数n,要求你求出在所有以n为最小公倍数的数对中两数之和的最小值。
方法:将n进行质因数分解,再将所有分解出的质因子加起来就是我们要求的答案。例如:12=2*2*3,那么答案就是2+2+3=4+3=7。
其中有几个特殊情况:一、是n分解质因数后只有一个质因数;二、是n本身为质数;三、是n等于1;四、是n本身是两个质数相乘的结果而且其中一个质数大于sqrt(n)。
前三种情况下,n的最小数对和都是n+1;最后一种情况在求和的过程中要将n分解质因数后所余下的剩余值加到和值里面去,这样才是正确答案。
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int n,num=0;
while(scanf("%d",&n)!=EOF&&n)
{
num++;
long long sum=0;
int i,flag=0;
int m=sqrt((double)n+0.5);
printf("Case %d: ",num);
int x,y=n;
for(i=2;i<=m;i++)//分解质因数
{
if(y%i==0)
{
flag++;
x=1;
while(y%i==0)
{
x*=i;
y/=i;
}
sum+=x;
}
}
if(y==n)//特殊情况二、三
sum=(long long)n+1;
else if(flag==1||y!=1)//特殊情况一、四
sum+=y;
printf("%llu\n",sum);
}
return 0;
}
数论 UVA 10791的更多相关文章
- UVA.10791 Minimum Sum LCM (唯一分解定理)
UVA.10791 Minimum Sum LCM (唯一分解定理) 题意分析 也是利用唯一分解定理,但是要注意,分解的时候要循环(sqrt(num+1))次,并要对最后的num结果进行判断. 代码总 ...
- 数论-质因数(gcd) UVa 10791 - Minimum Sum LCM
https://vjudge.net/problem/UVA-10791/origin 以上为题目来源Google翻译得到的题意: 一组整数的LCM(最小公倍数)定义为最小数,即 该集合的所有整数的倍 ...
- 数论 UVA 10780
数论题目.有关内容:整数质因数分解,N的阶乘质因数分解,整除的判断. 这道题的题意是给你两个数n.m,要求你求出n!所能整除的m^k的最大值的k是多少. 由于数据范围:1<m<5000,1 ...
- 数论 UVA 10943
这是一道关于组合数和隔板法的数论题目.题目说的是选出k个不同且不大于N的数字进行相加,要求这些数字之和等于N,结果要求输出这样的数有多少组.这里可以将问题利用隔板法来转换,那么题目的叙述可以转换成:这 ...
- 数论 UVA 11889
有关数论的题目,题目大意是给你两个数a和c,c为a和另一个数b的最小公倍数,要求你求出b的最小值.由最大公约数gcd(a,b)和最小公倍数lcm(a,b)之间的关系可知,lcm(a,b)*gcd(a, ...
- UVa 10791 - Minimum Sum LCM(唯一分解定理)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVA 10791 Minimum Sum LCM(分解质因数)
最大公倍数的最小和 题意: 给一个数字n,范围在[1,2^23-1],这个n是一系列数字的最小公倍数,这一系列数字的个数至少为2 那么找出一个序列,使他们的和最小. 分析: 一系列数字a1,a2,a3 ...
- UVA 10791 - Minimum Sum LCM(坑)
题目链接 不知道为什么,我用cin,cout就是过不了...改成scanf过了... 还是我居然理解错题意了,已经不能用看错了...至少两个数字,我理解成两个数字了,还写了个爆搜... #includ ...
- 数论 UVA 11076
这道题目的意思简单易懂说的是给你n个数(可能有重复相同的数字),列出他们所有排列的情况,再逐位相加,求出和,例如:给你1,2,3,则排列的情况为<123>, <132>, &l ...
随机推荐
- 工作偶遇小bug
1.下面这个在,调试一个单片机定时器是遇到的,整了一上午才找到,晕! 编译器是不认为它是错误的,所以,就你怎么运行都不是你想要结果。 2.使用pic单片机过程中,使用AD口时,相应端口的方向必须设为输 ...
- ASP.NET后台调用前台JS函数的三种常见方法
第一种:使用普通的添加控件中的Attributes属性进行调用 例如,像一般的普通的按钮:Button1.Attributes.Add("onclick","MyFun( ...
- iOS 8 TabBar 图片显示真实颜色
“展信颜开” 我怎么想到这个词了呢……因为这个足以表达我现在的心情,有解决了一个问题,有了一个收获. 早上小伙伴问我“用自带的tab改图的颜色他会不显示?改tabitem.”我记得是可以显示的,但是他 ...
- python中转义用法 r''
代码中需要转多个字符,,可以使用 r'' 例子: print(r"'''\\sfd/;fe'lsdfl")
- jQuery深层次复制对象
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.9.1/jquery.min. ...
- CDS
very nice artical talk about mergechangelog and cleardataset Delta and Data http://www.cnblogs.com/y ...
- Python的平凡之路(18)
一.JS 正则部分 test - 判断字符串是否符合规定的正则rep = /\d+/;rep.test("asdfoiklfasdf89asdfasdf")# truerep ...
- 详细讲解Linux驱动程序
一 编写Linux驱动程序 1.建立Linux驱动骨架 Linux内核在使用驱动时需要装载与卸载驱动 装载驱动:建立设备文件.分配内存地址空间等:module_init 函数处理驱动初始化 卸载驱动 ...
- .net core学习笔记(3)-依赖注入
.net core 中使用了大量的依赖注入,对依赖注入一直是一知半解,总想不透,项目中用的是一个网上的开源框架,从底层到web层都是用的构造函数依赖注入. 然后了在继承ActionFilterAttr ...
- Three.js资源
学习教程:http://www.hewebgl.com/ 例子:http://threejs.org/