如果某个数的平方的末尾几位数等于这个数,那么就称这个数为自守数。
显然,5和6是一位自守数(5x5=25 6x6=36)
25x25=625 76x76=5776,所以25和76是两位自守数。
自守数有一个特性,以他为后几位的两个数相乘,乘积的后几位仍是这个自守数。因为5时自守数,所以以5为个位数的两个数相乘,乘积的个位仍然是5;76是自守数,所以以76为后两位数的两个数相乘,其结果的后两位仍是76,如176x576=101376。
/*lx_5_34自守数.cpp*/
#include<stdio.h>
int cenf(int x,int y);
void main()
{
int i,n,a,x;
a=cenf(x,n);
for(i=1;i<=2000000;i++)
{
for (n=1;n<=7;n++)
{
if (i>=cenf(10,(n-1))&&i<cenf(10,n)&&(i*i-i)%cenf(10,n)==0)
printf("i=%d\n",i);
}
}
}
/*定义函数x^y*/
int cenf(int x,int y)
{
int a,i;
a=1;
for (i=1;i<=y;i++)
a=a*x*i/i;
return a;
}
|