changzhou 发表于 2022-6-3 21:09:05

雷劈数怎么写

雷劈数怎么写

临时号 发表于 2022-6-3 21:12:11

请描述一下你的需求

jackz007 发表于 2022-6-3 22:07:46

本帖最后由 jackz007 于 2022-6-4 12:21 编辑

for n in range(1000000):
    c = 10
    a , b = n // c , n % c
    while a:
      if (a + b) * (a + b) == n:
            print('(%d + %d) ^ 2 = %d' % (a , b , n))
      c *= 10
      a , b = n // c , n % c
      运行实况:
D:\\>python x.py
(8 + 1) ^ 2 = 81
(10 + 0) ^ 2 = 100
(20 + 25) ^ 2 = 2025
(30 + 25) ^ 2 = 3025
(98 + 1) ^ 2 = 9801
(100 + 0) ^ 2 = 10000
(88 + 209) ^ 2 = 88209
(494 + 209) ^ 2 = 494209
(998 + 1) ^ 2 = 998001

D:\\>

changzhou 发表于 2022-6-4 20:49:17

可以直接输出结果吗(要1000-10000的)

临时号 发表于 2022-6-4 23:42:16

for i in range(1000,10000):
        i = str(i)
        if len(i) % 2 != 0:
                continue
        a = 0
        b = 0
        if len(i) == 2:
                a = int(i)
                b = int(i)
        else:
                a = int(i[:int(len(i)/2)])
                b = int(i)
        if (a + b) ** 2 == int(i):
                print(i)
运行结果:
D:\command\Python>python test.py
2025
3025
9801
页: [1]
查看完整版本: 雷劈数怎么写