紫书 例题 10-4 UVa 10791(唯一分解定理)
2024-08-31 13:24:38
首先分解,然后可以发现同一个因子ai不能存在于两个以上的数中
因为求的是最小公倍数,如果有的话就可以约掉
所以数字必然由ai的pi次方的乘积组成,那么显然,在
a最小为2,而b大于2的情况下a*b>a+b
所以要让和最小,就每一个ai的pi次方作为一个数就好了。
另外注意long long,素数和1
#include<cstdio>
#include<cmath>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std;
int main()
{
int n, kase = 0;
while(~scanf("%d", &n) && n)
{
if(n == 1) { printf("Case %d: 2\n", ++kase); continue; }
int m = floor(sqrt(n) + 0.5), num = 0;
long long ans = 0;
REP(i, 2, m)
if(n % i == 0)
{
num++;
int t = 1;
while(n % i == 0) n /= i, t *= i;
ans += t;
}
if(n > 1) num++, ans += n;
if(num == 1) ans++;
printf("Case %d: %lld\n", ++kase, ans);
}
return 0;
}
最新文章
- caj转pdf
- 安装VS2013,可是电脑C盘没空间了,今天早上整理了下
- C语言: 创建数组的几种方法
- java 中for each语句
- MySQL高可用方案选型参考
- paip.语义分析--单字词形容词表180个
- apple Swift教程大全,希望对你有帮助!
- 开班典礼-老师玩命的教,大家玩命的学,沉静,18K
- .NET对象与Windows句柄(二):句柄分类和.NET句柄泄露的例子
- live555源代码编译
- VSS汉化后出现问题及解决方法
- 在C#中怎么调用Resources文件中的图片
- Android ViewPager 打造炫酷欢迎页
- 求模和求余(附加C语言实现)
- iOS开发——delegate的相关警告
- vue中引用swiper轮播插件
- RPM包的版本号比较
- 【python小练】0012题
- java 获取键盘输入常用的两种方法
- wamp多站点多端口配置
热门文章
- freeswitch 注册错误408 - Request Timeout
- SQL SERVER-数据库的远程访问解决办法
- Spring中基于Java的配置@Configuration和@Bean用法 (转)
- bzoj-1492 货币兑换Cash (1)——平衡树维护凸包
- 对苹果“五仁”编程语言Swift的简单分析
- poj 2612 Mine Sweeper
- oracle实现自增id
- Testbench代码设计技巧
- chrome的F12的inspect使用
- m_Orchestrate learning system---十二、为什么thinkphp验证场景里面的多个属性之间是逗号