Sunday, February 27, 2011

640 - Self Numbers


#include<stdio.h>
#define M 1000001
bool generated[M];
long next(long n);
int main()
{
    register long i,n;
//    freopen("out.txt","w",stdout);
    for(i=1;i<M;i++)
    {
        n=next(i);
        while(n<M)
        {
            if(generated[n])break;
            generated[n]=true;
            n=next(i);
        }
    }
    for(i=1;i<M;i++)
        if(!generated[i])printf("%ld\n",i);
    return 0;
}
long next(long n)
{
    register long s=n;
    while(n)
    {
        s=s+n%10;
        n=n/10;
    }
    return s;
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.