Minimum Sum LCM(uva10791+和最小的LCM+推理)
Limit:3000MS Memory Limit:0KB 64bit
IO Format:%lld & %llu


题意:输入正整数n,<注意n=2^31-1是素数。结果是2^31已经超int。用long long,>找至少两个数,使得他们的LCM为n且要输出最小的和;
思路:既然LCM是n,那么一定是n的质因子组成的数,又要使和最小,那么就是ans+=[质因子]^[个数]+...;
之前我一直超时,感觉都无语了。
转载请注明出处:
寻找&星空の孩子
题目链接:UVA
10791
也欢迎来我开的专题刷题。
哈哈http://acm.hust.edu.cn/vjudge/contest/view.action?cid=77956#overview
AC代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
#define LL long long LL n,sum; inline LL divisor(LL x)
{
int t=0,cnt;
LL tp;
for(int i=2; i<=sqrt(n); i++)
{
cnt=0;
tp=1;
if(x%i==0&&i!=n)
{
while(x)
{
if(x%i==0)
{
cnt++;
x=x/i;
tp=tp*i;
}
else {sum+=tp;break;}
}
t++;
}
if(!x) break;
}
if(x>1){sum+=x;t++;}
// printf("sum=%lld\n",sum);
return t;
} int main()
{ int ca=1;
while(scanf("%lld",&n),n)
{
sum=0;
LL m=divisor(n);
if(sum==0||m==1)sum=n+1;
printf("Case %d: %lld\n",ca++,sum);
}
return 0;
}
超时代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define LL long long LL n,sum; inline LL divisor(LL x)
{
int t=0,cnt;
LL tp;
for(int i=2; i<=x; i++)//这么写,就超时 了。。。。。
{
cnt=0;
tp=1;
if(x%i==0&&i!=n)
{
while(x)
{
if(x%i==0)
{
cnt++;
x=x/i;
tp=tp*i;
}
else {sum+=tp;break;}
}
t++;
}
if(!x) break;
}
return t;
} int main()
{ int ca=1;
while(scanf("%lld",&n),n)
{
sum=0;
LL m=divisor(n);
if(sum==0||m==1)sum=n+1;
printf("Case %d: %lld\n",ca++,sum);
}
return 0;
}
Minimum Sum LCM(uva10791+和最小的LCM+推理)的更多相关文章
- UVA.10791 Minimum Sum LCM (唯一分解定理)
UVA.10791 Minimum Sum LCM (唯一分解定理) 题意分析 也是利用唯一分解定理,但是要注意,分解的时候要循环(sqrt(num+1))次,并要对最后的num结果进行判断. 代码总 ...
- 数学 - Whu 1603 - Minimum Sum
Minimum Sum Problem's Link ------------------------------------------------------------------------- ...
- Minimum Sum(思维)
Problem 1603 - Minimum Sum Time Limit: 2000MS Memory Limit: 65536KB Total Submit: 563 Accepted ...
- Minimum Sum of Array(map迭代器)
You are given an array a consisting of n integers a1, ..., an. In one operation, you can choose 2 el ...
- Minimum Sum of Array(map)
You are given an array a consisting of n integers a1, ..., an. In one operation, you can choose 2 el ...
- Whu 1603——Minimum Sum——————【单个元素贡献、滑窗】
Problem 1603 - Minimum Sum Time Limit: 2000MS Memory Limit: 65536KB Total Submit: 623 Accepted: ...
- HDU-3743 Minimum Sum,划分树模板
Minimum Sum 被这个题坑了一下午,原来只需找一个最中间的数即可,我以为是平均数. 题意:找一个数使得这个数和区间内所有数的差的绝对值最小.输出最小值. 开始用线段树来了一发果断T了,然后各种 ...
- geeksforgeeks@ Minimum sum partition (Dynamic Programming)
http://www.practice.geeksforgeeks.org/problem-page.php?pid=166 Minimum sum partition Given an array, ...
- HDU 3473 Minimum Sum (划分树)
题意:给定一个数组,有Q次的询问,每次询问的格式为(l,r),表示求区间中一个数x,使得sum = sigma|x - xi|最小(i在[l,r]之间),输出最小的sum. 思路:本题一定是要O(nl ...
随机推荐
- 《Effective C++ 》学习笔记——条款02
**************************** 一. Accustoming Yourself to C++ **************************** 条款02: Pref ...
- Yii学习笔记之三(在windows 上安装 advanced )
首先说一下下载地址: http://www.yiiframework.com/download/ 然后将下载下来的文件进行解压到 你指定的文件夹 解压过程中假设报什么错误 直接忽略掉 我的解压文件夹是 ...
- windows之实现3D立体效果的三种方法
第一种:快捷键:win+tab 另外一种:cmd输入rundll32.exe dwmapi #105 第三种:使用软件bumptop
- VMware WorkStation安装时提示The MSI failed
以前安装过其他版本的VMware workstation卸载不完全造成的 先把所有VMware相关服务关闭,然后打开注册表,搜索所有VMware相关键值,删除掉,然后再安装就可以了 前提是你机器上没有 ...
- js中 正則表達式
正則表達式使用具体解释 简单介绍 简单的说,正則表達式是一种能够用于模式匹配和替换的强有力的工具.其作用例如以下: 測试字符串的某个模式.比如,能够对一个输入字符串进行測试,看在该字符串是否存在一个电 ...
- cocos2d-x 3.2 它 三消游戏——万圣节大作战
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
- hdu4738(割桥)
找人去炸边,炸完之后分成两个连通块(炸割桥) 每条边上有w个守卫,派去炸桥的人不能比守卫少 所以, 如果原本不连通,那么输出0 如果没有桥,输出-1 如果有桥没有守卫,那么是输出1,而不是0(tric ...
- 运行一个android程序,直接访问某个网站
package android.com.youtube; import android.app.Activity; import android.content.Intent; import andr ...
- Hibernate主键生成策略简单总结
数据库表主键的知识点: Generator 为每个 POJO 的实例提供唯一标识. 一般情况,我们使用"native".class 表示采用由生成器接口net.sf.hiberna ...
- Google是不是真的不能用了?非常奇怪的问题
这几天,事实上是这一阵子. 我连用goagent都无法上google了. 可怜我一直用Gmail邮箱.但如今我连用代理都上不了Gmail了. .. 是我自己电脑本身的问题吗?非常奇怪的问题,我原先用g ...