每日打卡

自守数

问题描述:一个数的平方末尾还是这个数本身的数角自守数,求100000以内的自守数

问题分析:最后一位数一样的只有5,6,0

代码:#include<stdio.h>

 int main()

 {

             long mul,number,k,a,b;

             printf("存在自守数小于100000:\n");

             for(number=1;number<100000;number++)

             {

               for(mul=number,k=1;(mul/=10)>0;k*=10);

               a=k*10;

               mul=0;

               b=10;

               while(k>0)

               {

                      mul=(mul+(number%(k*10))*(number%b-number%(b/)))%a;

                      k/=10;

                      b*=10;

               }

               if(number==mul)

                      printf("%ld",number);

             }

posted @ 2023-05-08 20:58  麹义  阅读(35)  评论(0)    收藏  举报