728x90
반응형
문제:
페르마의 마지막 정리는, a, b, c가 0이 아닌 정수이고, n이 2보다 큰 자연수 일 때, an = bn + cn을 만족하는 자연수 a, b, c가 존재하지 않는다는 정리이다. 이 정리는 아직 증명되지 않았다.
하지만, 완전 세제곱 방정식 a3 = b3 + c3 + d3을 만족하는 1보다 큰 자연수를 찾는 것은 어렵지 않다. (123 = 63 + 83 + 103)
이러한 완전 세제곱 방정식과 a ≤ 100을 만족하는 {a, b, c, d}쌍을 모두 찾는 프로그램을 작성하시오.
입력:
이 문제는 입력이 없다.
출력:
a값이 증가하는 순서대로 아래 출력 형식과 같이 출력한다. b, c, d도 증가하는 순서로 이루어져야 한다. a값에 해당하는 b, c, d쌍이 여러 개 존재할 수 있다. 이때는 b 값이 작은 것부터 먼저 출력한다.
아래 출력 예제는 일부분만 나와있다.
풀이방법:
조건이 맞는 a,b,c,d를 찾는 것은 쉬우나 시간을 줄이는 것이 이 문제의 핵심이다. a 같은 경우에는 6이 가장 같은 경우의 수 이기 때문에 6부터 시작하게 한다. 그리고 1보다 큰 자연수여야 하기 때문에 b는 2부터, b<c<d를 만족해야하기 때문에 c는 b부터, d는 c부터 시작하게 하도록 한다.
1
2
3
4
5
6
|
for a in range(6,101):
for b in range(2,a):
for c in range(b,a):
for d in range(c,a):
if a*a*a == b*b*b + c*c*c + d*d*d:
print("Cube = {}, Triple = ({},{},{})".format(a,b,c,d))
|
cs |
문제링크:
https://www.acmicpc.net/problem/4690
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
[BOJ]14725. 개미굴 (0) | 2021.06.22 |
---|---|
[BOJ]2012. 등수 매기기 (0) | 2021.06.17 |
[BOJ]1205. 등수 구하기 (0) | 2021.06.10 |
[BOJ]2240. 자두나무 (0) | 2021.06.08 |
[BOJ]2302. 극장 좌석 (0) | 2021.06.03 |