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