ピタゴラス数
30分プログラム、その268。ピタゴラス数 via Project Euler。
そのままやったら、とても解けなかったので式を変形してみた。
これだと一瞬で解ける。すげぇ。
使い方
$ python problem9.py a=200 b=375 c=425 31875000
ソースコード
#! /usr/bin/python # -*- mode:python; coding:utf-8 -*- # # problem9.py - # # Copyright(C) 2008 by mzp # Author: MIZUNO Hiroki / mzpppp at gmail dot com # http://howdyworld.org # # Timestamp: 2008/03/22 20:24:44 # # This program is free software; you can redistribute it and/or # modify it under MIT Lincence. # def pythag1(n): return [(a,b,c) for a in xrange(1,n) for b in xrange(1,n) for c in xrange(1,n) if a < b and b < c if a+b+c==1000 if a*a + b*b == c*c][0] def pythag2(): for (a,b) in [(x,y) for x in xrange(1,1000) for y in xrange(1,1000) if x < y]: if 2*(a-1000)*(b-1000) == 10**6: c = 1000-a-b return (a,b,c) all = a,b,c = pythag2() print "a=%s b=%s c=%s" % all print a*b*c