10591 - Happy Number

#include<stdio.h>
#include<string.h>
int main()
{
    long long int i,a,p,tag,sum,len,test_case;
    char str[50];
    char str1[50];
    scanf("%lld",&test_case);
    getchar();
    for(p=1; p<=test_case; p++)
    {
        scanf("%s",str);
        strcpy(str1,str);
        len=strlen(str);
        for(;;)
        {
            sum=0;
            for(i=0; i<len; i++)
            {
                a=str[i]-48;
                a=a*a;
                sum+=a;
            }
            memset(str,'\0',sizeof(str));
            sprintf(str,"%lld",sum);
            len=strlen(str);
            if(len==1 && strcmp(str,"1")==0)
            {
                tag=1;
                break;
            }
            if(len==1 && strcmp(str,"4")==0)
            {
                tag=0;
                break;
            }
        }
        if(tag)
        {
            printf("Case #%lld: %s is a Happy number.\n",p,str1);
        }
        else
        {
            printf("Case #%lld: %s is an Unhappy number.\n",p,str1);
        }
        memset(str,'\0',sizeof(str));
        memset(str1,'\0',sizeof(str1));
    }
    return 0;
}

0 comments: (+add yours?)