鱼C论坛

 找回密码
 立即注册
查看: 5821|回复: 13

题目39:如果p是直角三角形{a,b,c}的周长,1000以下的p中哪一个具有最多的解?

[复制链接]
发表于 2017-1-14 15:16:20 | 显示全部楼层
  1. # encoding:utf-8
  2. # 寻找周长1000以下,能够成直角三角形最多的数
  3. from time import time
  4. def euler039():
  5.     maxcount = 0
  6.     result = []
  7.     for p in range(12, 1001):
  8.         count = 0
  9.         tmp = []
  10.         for i in range(int(p / (1 + 2 ** 0.5)) - 1, int(p / 2) + 1):
  11.             for j in range(int(i / (2 ** 0.5)) - 1, i):
  12.                 if i ** 2 == j ** 2 + (p - i - j) ** 2:
  13.                     count += 1
  14.                     tmp.append((p, i, j, (p - i - j)))
  15.                     break
  16.         if count > maxcount:
  17.             result = tmp
  18.             maxcount = count
  19.     print(maxcount, result)
  20. if __name__ == '__main__':
  21.     start = time()
  22.     euler039()
  23.     print('cost %.6f sec' % (time() - start))
复制代码


8 [(840, 348, 252, 240), (840, 350, 280, 210), (840, 357, 315, 168), (840, 364, 336, 140), (840, 370, 350, 120), (840, 375, 360, 105), (840, 394, 390, 56), (840, 401, 399, 40)]
cost 5.641026 sec
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-9 03:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表