세 변의 길이가 모두 자연수 {a, b, c}인 직각삼각형의 둘레를 p 로 둘 때, p = 120 을 만족하는 직각삼각형은 아래와 같이 세 개가 있습니다.
{20, 48, 52}, {24, 45, 51}, {30, 40, 50}
1000 이하의 둘레 p에 대해서, 직각삼각형이 가장 많이 만들어지는 p의 값은 얼마입니까?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | n = 1000 List = range(0, n) for a in range(1, n/2): for b in range(1, n/2): for c in range(1, n/2): if a**2 + b**2 == c**2 and a+b+c <=n: #print "%d**2 + %d**2 = %d**2" % (a,b,c) List[a+b+c] +=1 maxVal = 0 for i in range(0, n): List[i] -= i if List[i] > maxVal: maxVal = List[i] print List.index(maxVal) # 840 #print List.index(max(List)) | cs |
'* Computer Science > Project Euler' 카테고리의 다른 글
project euler 42. problem (0) | 2016.09.23 |
---|---|
project euler 40. problem (0) | 2016.09.22 |
project euler 38. problem (0) | 2016.09.06 |
project euler 36. problem (0) | 2016.09.01 |
project euler 목적. (0) | 2016.08.30 |