【Number Theory】Pythagorean Triples Generating Program

# this program is for generating the Pythagorean Triples(a, b, c).
# using the Pythagorean Triples Theorem:
# a = s*t, b = (s**2 - t**2)/2, c = (s**2 + t**2)/2.
# s and t are odd, and they are relatively prime.  

sortByA = open("PythagoreanTriplesSortByA.txt", "w")
sortByB = open("PythagoreanTriplesSortByB.txt", "w")
sortByC = open("PythagoreanTriplesSortByC.txt", "w")

T = int(input("input the max t(odd) for iterator:"))
S = int(input("input the max s(odd and normally bigger than T) for iterator:"))

pythagoreanTriplesList = []
for t in range(1, T + 1, 2):
    for s in range(t + 2, S + 1, 2):
        triple = (s * t, int((s**2 - t**2)/2), int((s**2 + t**2)/2))
        pythagoreanTriplesList.append(triple)

# sorted by a
pythagoreanTriplesList.sort(key = lambda triple : triple[0])
for i in range(0, len(pythagoreanTriplesList)):
    triple = pythagoreanTriplesList[i]
    sortByA.write("({0}, {1}, {2})\n".format(triple[0], triple[1], triple[2]))
    
# sorted by b
pythagoreanTriplesList.sort(key = lambda triple : triple[1])
for i in range(0, len(pythagoreanTriplesList)):
    triple = pythagoreanTriplesList[i]
    sortByB.write("({0}, {1}, {2})\n".format(triple[0], triple[1], triple[2]))
    
# sorted by c
pythagoreanTriplesList.sort(key = lambda triple : triple[2])
for i in range(0, len(pythagoreanTriplesList)):
    triple = pythagoreanTriplesList[i]
    sortByC.write("({0}, {1}, {2})\n".format(triple[0], triple[1], triple[2]))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值