自守数:
指一个数的平方的尾数等于该数自身的自然数。例如
5*5=25,5==5
6*6=36,6==6
376*376=141376,376==376
/* 输入数字 num, 返回 1 表示为自守数,返回 0 表示不是自守数 */
#define TRUE 1
#define False 0
int function( int num )
{
int mul, aa, kk, bb;
if( num<0 )
return False;
for( mul=num, kk=1; (mul/=10)>0; kk*=10 ) ;
aa = kk*10;
mul=0;
bb=10;
while( kk>0 )
{
mul = (mul + (num%(kk*10))*(num%bb-num%(bb/10)))%aa;
kk/=10;
bb*=10;
}
if(mul==num)
return TRUE;
else
return False;
}