def isTgs(n):#判断一个数是否是同构数,是则返回True,不是则返回False
|
|
m=n*n
|
|
return str(m)[-len(str(n)):]==str(n)
|
|
|
|
def check(instr):#检查instr是否合法,合法则返回字符串对应的整数,不合法返回错误代码。
|
|
if len(instr)>2 or len(instr)<1:
|
|
return -1
|
|
elif not instr.isnumeric() : #输入的是非数字字符
|
|
return -2
|
|
else:
|
|
return int(instr)
|
|
def getTgs():#输入一组数据到-1结束,将其中1~2位的同构数加入到一个列表后返回列表
|
|
L=[]
|
|
s=input().strip()
|
|
while s!="-1":
|
|
n=check(s)
|
|
if n>0 and isTgs(n):
|
|
L.append(n)
|
|
s=input().strip()
|
|
return L
|
|
|
|
def main():#获取同构数,输出有序的不重复的同构数
|
|
L=getTgs()
|
|
if len(L)==0:
|
|
print("没有同构数")
|
|
else:
|
|
L= list(set(L)) #去重复
|
|
L.sort()
|
|
print("同构数有:",end="")
|
|
for i in L:
|
|
print(i,end=' ')
|
|
|
|
main()
|