weng_zh 发表于 2022-5-5 16:33

[Python]同构数

编写程序,找出介于正整数A和B(包含A和B且A<B)之间的所有同构数的程序,并输出这些同构数,如果不存在同构数则输出“none”
所谓同构数,是指一个数出现在自己平方致的右端,例如,25,其平方数为25^2=625,25正好出现在625的右边,所以25是同构数
输入两个数字之间用英文逗号分隔

def iso(x):
    x = int(x)
    m = len(str(x))
    s = x*x
    str_a = str(s)
    if x == int(str_a[-m:]):
      return True
    else:
      return False


a, b = map(eval, input('请输入取值范围\n').split(','))
res = []
for n in range(a, b + 1):
    if iso(n):
      res.append(n)

if len(res) == 0:
    print('none')
else:
    for i in range(len(res)-1):
      print(res, end=',')
    print(res[-1])

JokerShame 发表于 2022-5-5 23:48

21、22、23行为什么要这样写?直接写成
for i in range(len(res)):
      print(res, end=',')
不行吗?

weng_zh 发表于 2022-5-6 09:20

JokerShame 发表于 2022-5-5 23:48
21、22、23行为什么要这样写?直接写成
for i in range(len(res)):
      print(res, end=',')


这样写在最后一个数字后面还会有一个"," 看着难受{:1_907:}
页: [1]
查看完整版本: [Python]同构数