首先啊,我们需要知道什么是同构数。
同构数是会出现在它的平方数的尾部的正整数。
列如:他自身平方后的结果最后一位也是他自身(百度百科里的解释)
然后对判断同构有个基本的了解:
def getNum():#输入数字
nums=[]
iNumStr=input()
while iNumStr !='-1':#输入-1表示输入结束
if(len(iNumStr)in[1,2]):#确保不超过2位的正整数
if(iNumStr.isdigit()):#判断一个字符串是否是数字字符
nums.append(eval(iNumStr))#向数组里添加输入的数字
iNumStr=input()
return nums
def tonggou(n):#判断是否为同构数并输出同构数
list=[]
for i in n:
if(len(str(i))==1):#一位数判断
if(str(i)==(str(i*i))[-1]):
list.append(i)
if(len(str(i))==2):#两位数判断
if(str(i)==(str(i*i))[-2]):
list.append(i)
return list
def main():
s=getNum()
m=tonggou(s)
m.sort()#输出的同构数要求从小到大排序
print("同构数有:",end='')
for e in m:
print(e,end='')
main()
仅供了解,不具备效果
得出:
import math #导入函数库
for i in range(1, 101):
twice = math.pow(i, 2)#math库中的(底数,几次方)pow方法
g = twice % 10
s = twice // 10 % 10
b = twice // 100 % 10
if (i == g) or (i == s*10+g) or (i == b*100+s*10+g):
print(i, end=" ")
结果: