UVa--10791 Minimum Sum LCM(math)
2016-02-18 21:11
316 查看
UVa 10791
将n分解,n=pa11pa22...pakk,可知将每个pakk作为一个因子时最优。
注意当 n = 1和 n 为素数的时候,最小和为 n+1.
题解
算术基本定理的应用。将n分解,n=pa11pa22...pakk,可知将每个pakk作为一个因子时最优。
注意当 n = 1和 n 为素数的时候,最小和为 n+1.
#include <bits/stdc++.h> using namespace std; int main() { #ifdef LOCAL freopen("data.in", "r", stdin); #endif // LOCAL int kcase = 1; long long n; while(cin >> n && n) { long long ans = 0; vector<int> fac; long long nn = n, m = (int)sqrt(n + 0.5); for(int i = 2; i <= m; ++i) { long long e = 1; while(n % i == 0 && n > 1) { e *= i; n /= i; } if(e != 1) fac.push_back(e); } if(n > 1) fac.push_back(n); if(fac.size() == 1 || nn == 1) ans = nn + 1; else{ for(size_t i = 0; i < fac.size(); ++i) ans += fac[i]; } printf("Case %d: %lld\n", kcase++, ans); } return 0; }
相关文章推荐
- 微软Word 2007数学插件 Microsoft Math 提供下载
- RM格式压缩电影软件 Easy RealMedia Producer Full V1.94 下载
- 关于C# Math 处理奇进偶不进的实现代码
- JavaScript中的Math.SQRT1_2属性使用简介
- JavaScript Math.ceil() 函数使用介绍
- 与Math.pow 相反的函数使用介绍
- 在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
- JavaScript中使用指数方法Math.exp()的简介
- 比较简单的jquery教程 Easy Ajax with jQuery 中文版全集第1/3页
- Easy RM RMVB to DVD Burner v1.3.8 汉化版 下载 附注册码
- JavaScript使用Math.Min返回两个数中较小数的方法
- Ajax获取页面被缓存的解决方法
- JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
- JavaScript中Math对象使用说明
- javascript对象之内置对象Math使用方法
- 基于java math API 的详细解释说明
- 简介JavaScript中用于处理正切的Math.tan()方法
- 浅谈JavaScript中的Math.atan()方法的使用
- PHP内置的Math函数效率测试
- 在JavaScript中使用对数Math.log()方法的教程