#include <iostream> using namespace std; int main(int argc, char *argv[]) { int j,k,m=0,flag; long long s,n,i; while(cin>>n) { s=0;flag=0; if(n==0) break; j=n; for(i=2;i*i<=j;i++) { k=1; if(n%i==0) flag++; while(n%i==0) k*=i,n/=i; if(k!=1) s+=k; } if(n!=1&&j!=n) s+=n;//分解出来n不为0时 if(j==n) s+=n+1;//为素数 if((flag==1&&n==1)) s++;//只分解为一个素数 cout<<"Case "<<++m<<": "<<s<<endl; } return 0; }
作者:chenlang888 发表于2013-7-17 12:56:45 原文链接
阅读:62 评论:0 查看评论