Minimum Sum LCM(uva10791+和最小的LCM+推理)
2015-06-11 21:20
295 查看
L - Minimum Sum LCM
Time
Limit:3000MS Memory Limit:0KB 64bit
IO Format:%lld & %llu
Submit Status Practice UVA
10791
![](http://images0.cnblogs.com/blog2015/555677/201506/112048375821527.png)
![](http://images0.cnblogs.com/blog2015/555677/201506/112049029576408.png)
转载请注明出处:
题目链接:UVA
超时代码:
Time
Limit:3000MS Memory Limit:0KB 64bit
IO Format:%lld & %llu
Submit Status Practice UVA
10791
![](http://images0.cnblogs.com/blog2015/555677/201506/112048375821527.png)
![](http://images0.cnblogs.com/blog2015/555677/201506/112049029576408.png)
题意:输入正整数n,<注意n=2^31-1是素数,结果是2^31已经超int,用long long,>找至少两个数,使得他们的LCM为n且要输出最小的和;
思路:既然LCM是n,那么一定是n的质因子组成的数,又要使和最小,那么就是ans+=[质因子]^[个数]+...;
之前我一直超时,感觉都无语了。
转载请注明出处:
![](http://www.cnblogs.com/Skins/custom/images/logo.gif)
寻找&星空の孩子
题目链接: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; }
相关文章推荐
- 管道
- 42.Trapping Rain Water
- Binder 驱动学习笔记
- 关于qt学习的一点小记录(1)
- springmvc 开涛 拦截器
- Android之NDK开发Androd.mk
- js 瀑布流加载图片
- iOS 文件操作相关
- nyoj 168 房间安排(区间覆盖)
- 四大组件之一Service——应用实例二(IntentService类的使用)
- 二叉树两结点的最低公共父结点
- QT中获得打开文件的名字
- 类学习之一Pass arguments to base class
- NGUI研究院之为什么打开界面太慢(十三)
- 【VB.NET机房重构】数据传递----实体、DataTable、泛型
- 自定义ListView使用Volley获取数据
- 浅谈Struts2
- 百度地图 Android SDK - 新的版本号(v3.2.0)正式上线
- 经典排序算法分析(附源码)
- [POI 2011]Sticks(乱搞)