a和b的LCM是n,GCD是m,那么n=a/m*b , 它们的和就是sum=a+b;

如果m不为1(即a和b不互质),那么我们为什么不优化一下,将a变为a=a/m呢?,改变后a和b的LCM依然是n,但是他们的和显然减少了

所以我们得到最重要的一个性质,要想a1,a2,a3……an的和最小,要保证他们两两互质,只要存在不互质的两个数,就一定可以近一步优化

那我们怎么保证两两互质呢?方法其实很简单,直接分解质因子

例如264600=8*27*25*49  , 只是由3个2,3个3,2个5,2个7,处理后得到的因子,那么8,27,25,49的LCM是264600,并且两两互质,他们还要不要处理呢?不需要了,直接将他们加起来就是我们要的答案!

所以
1.没有质因数的数 :1单独处理,就等于2;
2.有质因子的数:
a.只有一个质因数——质数、质数n:最后加1
b.有两个及以上个质数:累加每项质因数ak
#include <bits/stdc++.h>

using namespace std;

long long  n,cas=0;

long long  addDivisor(){
	long long  ans=0;
	int cnt=0;
	for(int i=2;i<=n/i;i++){
		if(n%i==0){
			long long  sum=1;
			cnt++;
			while(n%i==0){
				sum*=i;
				n/=i;
			}
			ans+=sum;	
		}
	}
	if(n>1) ans+=n,cnt++;//一个数最多有一个质因子 
	if(cnt<=1) ans++;//每个数都要有两个因数,质因数不够,1来凑 
	return ans;
}

int main(int argc, char** argv) {
	while(cin>>n,n){
		if(n==1) printf("Case %lld: 2\n",++cas);
		else printf("Case %lld: %lld\n",++cas,addDivisor());
	}
	return 0;
}