10791 - Minimum Sum LCM

描述:将最小公倍数分解质因子,最小的和便为各个质因子的相应次方数之和。 (1)当N是素数的时候,输出N+1 (2)当只有单质因子时或者N不被除尽时,质因子相应次方和+N最后的数;

#include <cstdio>

#include <cmath>

int main()

{

  //  freopen("a.txt","r",stdin);

    int n,t=0,count,m,p,q;

    long long len;

    while(scanf("%d",&n)!=EOF)

    {

        if(!n) break;

        printf("Case %d: ",++t);

        m=sqrt(n+0.5),p=n,len=0,count=0;

        for(int i=2; i<=m; ++i) if(p%i==0)

        {

            ++count;

            q=1;

            while(p%i==0)

            {

                q*=i;

                p/=i;

            }

            len+=q;

        }

        if(n==p) len=len+n+1;

        else if(count==1||p!=1)len=len+p;

        printf("%lld\n",len);

    }

    return 0;

}


你可能感兴趣的:(ini)