티스토리 뷰
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import math countResult=0 result=0 for circumference in range(1,1001): count=0 for a in range(1,circumference): for b in range(1,a): c=circumference-a-b if((int)(math.pow(c,2)!=(int)(math.pow(a,2)+math.pow(b,2)))): continue else: count=count+1 if(countResult<count): countResult=count result=circumference print(result) | cs |
여러 번의 수정 끝에 나온 코드이다.
처음엔 c(빗변)도 for문으로 돌렸는데,
이 경우에 for문의 범위를 계속 조작해보아도 시간이 너무 오래 걸려서
c를 [둘레 - a - b]와 같이 설정해 놓고 구했더니
속도가 훨씬 빨라졌다.
그래도 몇 분 걸렸으니 좋은 알고리즘은 아니다.
'Algorithm > Project Euler' 카테고리의 다른 글
프로젝트 오일러 40번 (0) | 2017.07.02 |
---|---|
프로젝트 오일러 22번 (0) | 2017.07.01 |
프로젝트 오일러 36번 (0) | 2017.06.30 |
프로젝트 오일러 32번 (0) | 2017.06.29 |
프로젝트 오일러 29번 (0) | 2017.06.29 |
댓글