Moderator: Board moderators
#include <stdio.h>
unsigned long res=0;
calc(unsigned long n){
int i,j,sum=1;
while(n%2==0){
n=n/2;
sum*=2;
}
if (sum>1){
res+=sum;
sum=1;
}
i=3;
while(i*i<=n){
while(n%i==0){
n=n/i;
sum*=i;
}
if(sum>1) {
res+=sum;
sum=1;
}
i+=2;
}
res+=n;
if(res==n)
return 0;
return 1;
}
int main()
{
unsigned long n;
int c=0;
while(scanf("%lu",&n)&n!=0){
c++;
if(calc(n))
printf("Case %d: %lu\n",c,res);
else
printf("Case %d: %lu\n",c,n+1);
res=0;
}
return 0;
}Users browsing this forum: No registered users and 0 guests