|
|
@ -0,0 +1,33 @@ |
|
|
|
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() |