【题目分析】
唯一分解定理
【代码】
#include <cstdio>
#define ll long long
int kase=0,n,tmp,flag;
long long ans=0;
int main()
{
while (scanf("%d",&n)&&n)
{
if (n==1) {printf("Case %d: 2\n",++kase,ans);continue;}
ans=0;flag=0;
for (int i=2;(ll)i*i<=(ll)n&&n>1;++i)
if (n%i==0)
{
flag++;
tmp=1;
while (n%i==0)
{
n/=i;
tmp*=i;
}
ans+=tmp;
}
if (n>1) flag++,ans+=n;
if (flag==1) ans++;
printf("Case %d: %lld\n",++kase,ans);
}
}