您的位置:首页 > 其它

UVA 10791 Minimum Sum LCM

2014-09-10 16:35 555 查看
#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <stack>
#include <queue>
#include <cctype>
#include <cstdio>
#include <string>
#include <vector>
#include <climits>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#define LL long long
#define PI 3.1415926535897932626
using namespace std;
int gcd(int a, int b) {return a % b == 0 ? b : gcd(b, a % b);}
LL N;
void calcu(LL N,LL &cnt,LL &ans)
{
//printf("m=%lld\n",m);
for (LL i=2;i*i<=N && N>1;i++)
{
if (N%i==0)
{
cnt++;
//  printf("%d\n",i);
LL res=1;
while (N%i==0 && N>1)
{
res*=i;
N/=i;
}
ans+=res;
}
}
if (N>1) ans+=N;
}
int main()
{
int kase=1;
while (scanf("%lld",&N)!=EOF)
{
if (N==0) break;
LL cnt=0,ans=0;
calcu(N,cnt,ans);
// printf("cnt=%d\n",cnt);
if (cnt==0|| cnt==1) ans=N+1;
printf("Case %d: %lld\n",kase++,ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: