自守数的C语言实现

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    long n,m;
    scanf("%ld",&n);
    long a,k,i,j,b;
    for(a=1;a<=n;a++)
    {
        for(m=a,k=1;(m/=10)>0;k*=10);
        i=k*10;m=0;b=10;
        while(k>0)
        {
            m=(m+(a%(k*10))*(a%b-a%(b/10)))%i;
            k/=10;
            b*=10;
        }
    if(a==m)
    printf("%ld ",a);
}
    return 0;
}
    

上一篇:【Luogu3414】SAC#1 - 组合数


下一篇:C语言中完数判断