Eulerproblem 10 for python
来源:互联网 发布:卖家加入淘宝客 编辑:程序博客网 时间:2024/06/15 11:47
def ext11(n):
"""
一个毕达哥拉斯三元组是一个包含三个自然数的**,a<b<c,满足条件:a2 + b2 = c2
例如:32 + 42 = 9 + 16 = 25 = 52.
已知存在并且只存在一个毕达哥拉斯三元组满足条件a + b + c = 1000。找出该三元组中abc的乘积。
直接循环的效率太低 所以做了一些简化与范围的缩小
a + b + c = n ,a^2 + b ^2 = c^2,a < b < c==> 1< a < n/3 n/(2+sqrt(2))<b< n/2
"""
flag = False
for a in range(1, int(n / 3)):
c = a if a > (n / (2 + 2 ** 0.5)) else int((n /( 2 + 2 ** 0.5)))
for b in range(c, int(n / 2)):
print a, b
if a ** 2 + b ** 2 == (n - a - b) ** 2:
print a, b, n - a - b
flag = True
if flag:
break
if flag:
break
"""
一个毕达哥拉斯三元组是一个包含三个自然数的**,a<b<c,满足条件:a2 + b2 = c2
例如:32 + 42 = 9 + 16 = 25 = 52.
已知存在并且只存在一个毕达哥拉斯三元组满足条件a + b + c = 1000。找出该三元组中abc的乘积。
直接循环的效率太低 所以做了一些简化与范围的缩小
a + b + c = n ,a^2 + b ^2 = c^2,a < b < c==> 1< a < n/3 n/(2+sqrt(2))<b< n/2
"""
flag = False
for a in range(1, int(n / 3)):
c = a if a > (n / (2 + 2 ** 0.5)) else int((n /( 2 + 2 ** 0.5)))
for b in range(c, int(n / 2)):
print a, b
if a ** 2 + b ** 2 == (n - a - b) ** 2:
print a, b, n - a - b
flag = True
if flag:
break
if flag:
break
1 0
- Eulerproblem 10 for python
- Eulerproblem-12 for python
- Eulerproblem-13 for python
- Python for Data Analysis (10)
- python for
- Python for
- MultiBoolean for C++/Python
- [Nokia]python for s60
- Python For Delphi 示例
- LibMMSeg for Python
- Karrigell for Python
- Web Frameworks for Python
- Extensions for Python
- Python的for循环
- python for cgi
- MySQLdb for Python
- Python for win
- python for in range
- css之div布局
- 百度地图兴趣点数据库、baidu map商户数据库、地标数据库、poi数据库
- linux总结(3)——变量的各种截取、替换、部分删除
- 输入限制(输入字数或输入内容限制)
- POJ 1200 Crazy Search
- Eulerproblem 10 for python
- 立体声平衡指示器电路
- THE LEAP-FROG 跳高者
- cocos2d-x游戏开发 跑酷(九) 源码下载及小结
- 教你解决Sublime Text中文乱码问题
- MongoDB---2.6.0的一些改动---restore
- Linux下的硬件驱动——USB设备(上)
- linux 网络参数设置命令
- 最大流ISAP算法模板