UVA 10791 Minimum Sum LCM

来源:互联网 发布:mysql union order 编辑:程序博客网 时间:2024/05/16 14:35
#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.1415926535897932626using 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;}

0 0
原创粉丝点击