#include <iostream> #include <climits> using namespace std; int Primes[6550]; int Len; void getprime() { bool flag[65537] = { false}; for (int i = 2; i < 65537;++i) if (!flag[i]) for (int j = i + i; j < 65537; j += i) flag[j] = true; for (int i = 2; i < 65537; ++i) if (!flag[i]) Primes[Len++] = i; } long long power(int x,int y) { long long mul = 1; for (int i = 0; i < y; ++i) mul *= x; return mul; } int main() { unsigned n,iCnt = 1,temp; getprime(); while (scanf("%u",&n),n) { if(n == 1) { printf("Case %u: 2/n",iCnt);iCnt++;continue; } long long sum = 0; int time = 0; temp = n; //把n分解 for (int i = 0; i < Len && Primes[i] * Primes[i] <= n; ++i) { int dim = 0; while (n % Primes[i] == 0) { dim++; n /= Primes[i]; } if (dim) sum += power(Primes[i],dim),time++; } //n = p ^Q || n是素数 if ((n == 1 && time == 1) || (time == 0)) { printf("Case %u: %u/n",iCnt,temp+1);iCnt++;continue; } if (n > 1 && n != temp) //time >= 0 sum += n; printf("Case %u: %lld/n",iCnt,sum); iCnt++; } return 0; }