Team AllStuWrite's repo

33 lines
1.2 KiB

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()