#include <stdio.h>
int main()
{
long int mul,number,k,ll,kk;
printf("lt exits following automorphic numbers smaller than 200000 :\n");
for(number=0;number<200000;number++)
{
for(mul=number,k=1;(mul/=10)>0;k*=10);
{
kk=k*10;
mul=0;
ll=10;
while(k>0)
{
mul=(mul+(number%(k*10))*(number%ll-number%(ll/10)))%kk;
k/=10;
ll*=10;
}
if(number == mul)
{
printf("%ld\t",number);
}
}
}
printf("\n");
return 0;
}
回文数
#include <stdio.h>
int main ()
{
int m[16],n,i,t,count=0;
long unsigned a,k;
printf("No. number it's square (palindrome)\n");
for (n=1;n<256;n++)
{
k=0;
t=1;
a=n*n;
for(i=1;a!=0;i++)
{
m[i]=a%10;
a/=10;
}
for(;i>1;i--)
{
k+=m[i-1]*t;
t*=10;
}
if(k==n*n)
{
printf("%2d %10d %10d\n",++count,n,n*n);
}
}
printf("\n");
return 0;
}