标签:
import java.util.Scanner; public class GetSelfConttrolledNum { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int count = getSelfControlledNum(num); System.out.println(count); } private static int getSelfControlledNum(int num) { int number = 0; for (int i = 2; i < num; i++) { if(i<9){ int a = i*i; if(a%10==i) number++; } else if(i<99){ int a = i*i; int b = a-a/100*100; if(b==i) number++; }else if(i<999){ int a = i*i; int b = a-a/1000*1000; if(b==i) number++; }else if(i<9999){ int a = i*i; int b = a-a/10000*10000; if(b==i) number++; } } return number+2; } }自守数:
如果某个数的平方的末尾几位数等于这个数,那么就称这个数为自守数(如果该数是一位数,该数平方的个位和该数相同就是自守数,比如0,1,5;如果该数是两位数,就要看结果的后两位是否与该数相同)。
定义:自然数n称为p-进制下的自守数当且仅当 n(n-1)能被p^m整除其中m=1+[log_p n]。取p=10时即为此自守数的定义。
0和1的平方的个位数仍然是0和1(对任何p进制),称为平凡自守数。
注意:当p为素数时,只有平凡自守数。
显然,5和6是一位自守数(5x5=25 6x6=36)
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/liaction/article/details/47685119