作者 李祥
单位 湖北经济学院
所谓自守数(也称守形数),是指其平方数的低位部分恰为该数本身的自然数。例如:252=625,因此25是自守数。(注:0 和 1 也算自守数。)
请编写程序,输出指定范围内的所有自守数。若指定范围内不存在自守数,则输出None。
输入格式
正整数 a 和 b, 且 a≤b≤10000
输出格式
若 [a,b] 内存在自守数,则按由小到大的顺序输出,每行输出一个自守数;若不存在自守数,则输出None。
输入样例1
10 80
输出样例1
25
76
输入样例2
400 600
输出样例2
None
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include <stdio.h>
int main(){
int start, end; //定义两个整数
int count = 0; //定义一个标志是否有自守数
int number; //定义范围内任何一个数的平方和
scanf("%d %d",&start, &end);
if(start >= 0 && start <= end && end <= 10000){ //确定范围
for(int i = start; i <= end; i++){ //范围内的每个数都做判断
number = i * i;
if(number % 10 == i || number % 100 == i|| number % 1000 == i
|| number % 10000 == i ){//判断该数是否为该数平方和的尾数
printf("%d\n", i); //如果满足条件则输出该数
count = 1; //标志范围内是否有自守数
}
}
}
if(count == 0){ //如果没有自守数则输出None
printf("None");
}
return 0;
}