您的位置:首页 > 其它

uva 10791【 Minimum Sum LCM】

2012-04-14 17:40 441 查看
每做一题就对数学更加崇拜!

看了别人做的才会做的,细节问题不会处理

http://www.mysjtu.com/page/M0/S653/653211.html

还是贴上自己的代码吧。。。

代码如下:

#include <cstdio>
#include <cstring>
#include <cmath>

int n;

long long solve()
{
int m = (int)sqrt(n + 0.5);
long long sum = 0;
int count = 0;
for(int i = 2;i <= m;i ++)
{
if(n % i == 0)
{
int mul = 1;
while(n % i == 0)
{
mul *= i;
n = n/i;
}
sum += mul;
count ++;
}
}
if(n != 1 || count == 0)
{
sum += n;
count ++;
}
if(count == 1)
sum ++;
return sum;
}

int main()
{
int cas = 1;
while(scanf("%d",&n) == 1)
{
if(!n)
break;
printf("Case %d: ",cas ++);
printf("%lld\n",solve());
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: