mang_dev
맹꽁거리는 개발자
mang_dev
전체 방문자
오늘
어제
  • 분류 전체보기 (185)
    • Frontend (2)
      • Next.js (1)
    • Backend (3)
      • GraphQL (2)
    • Book (1)
      • 기타 (1)
    • Old (177)
      • 알고리즘 퍼즐 (1)
      • 백준 (131)
      • 프로그래머스 (0)
      • Codility (15)
      • LeetCode (7)
      • Codewars (1)
      • Codeforces (0)
      • Django (6)
      • React (2)
      • Naver Map Api (3)
      • Web UI (4)
      • Introduction to Cloud (2)
hELLO · Designed By 정상우.
mang_dev

맹꽁거리는 개발자

백준 4690번 완전 세제곱 // C++
Old/백준

백준 4690번 완전 세제곱 // C++

2020. 2. 17. 20:00

문제

 

페르마의 마지막 정리는, 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 값이 작은 것부터 먼저 출력한다.

 


 

풀이

 

단순하게 4중 for문을 이용하여 세 개의 수의 세제곱의 합이 다른 수의 세제곱이 되면 출력하면 된다.

 

제일 작은 a의 값은 6이므로 6부터 시작하면 되고, b, c, d는 오름차순으로 출력해야 하므로 더 큰 값부터 for문의 index를 시작하면 된다.

 


 

코드

더보기
#include <iostream>

using namespace std;

int power(int num) {
	return num * num * num;
}

int main() {
	for (int i = 6; i <= 100; i++) {
		for (int j = 2; j < i; j++) {
			for (int k = j + 1; k < i; k++) {
				for (int l = k + 1; l < i; l++) {
					if (power(i) == power(j) + power(k) + power(l)) {
						printf("Cube = %d, Triple = (%d,%d,%d)\n", i, j, k, l);
					}
				}
			}
		}
	}
}
저작자표시 (새창열림)

'Old > 백준' 카테고리의 다른 글

백준 6603번 로또 // C++  (0) 2020.02.17
백준 6679번 싱기한 네자리 숫자 // C++  (0) 2020.02.17
백준 1620번 나는야 포켓몬 마스터 이다솜 // C++  (0) 2020.02.16
백준 1764번 듣보잡 // C++  (0) 2020.02.16
백준 14496번 그대, 그머가 되어 // C++  (0) 2020.02.16
    'Old/백준' 카테고리의 다른 글
    • 백준 6603번 로또 // C++
    • 백준 6679번 싱기한 네자리 숫자 // C++
    • 백준 1620번 나는야 포켓몬 마스터 이다솜 // C++
    • 백준 1764번 듣보잡 // C++
    mang_dev
    mang_dev

    티스토리툴바