[BOJ / 백준] 9020번 골드바흐의 추측 C++ 문제 풀이

2020. 11. 11. 00:42·Baekjoon/단계별로 풀어보기
728x90

단계별로 풀어보기 - 수학 2단계 - [5단계] 9020번

문제

문제 링크 : www.acmicpc.net/problem/9020

 

9020번: 골드바흐의 추측

1보다 큰 자연수 중에서  1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아

www.acmicpc.net

입력 복사 : 

3 8 10 16

 

CODE

#include <iostream>
#include <cmath>
using namespace std;

bool isPrime(int i) {
	int rt;
	rt = sqrt(i);
	if (rt == 1 && i != 1) {	//2,3인 경우
		return true;
	}
	if (i % 2) {	//홀수일 경우
		for (int j = 2; j <= rt; j++) {
			if (!(i%j))
				return false;
			if (j == rt) {
				return true;
			}
		}
	}
}

int main() {
	int T;
	cin >> T;

	for (int test_case = 0; test_case < T; test_case++) {
		int n;
		cin >> n;

		for (int i = n / 2; i >= 2; i--) {
			if (isPrime(i) && isPrime(n - i)) {
				cout << i << " " << n - i << '\n';
				break;
			}
		}
	}
}

 

풀이

지난 소수 관련 문제와 동일한 방식을 이용하여 소수 여부를 리턴하는 isPrime함수를 만들었다.

두 수의 차이가 가장 작은 골드바흐 파티션을 구해야 하기 때문에,

n의 중앙값부터 2까지 감소시키며 두 수 모두 소수인지를 검사하였다.

 

결과

728x90
저작자표시 (새창열림)

'Baekjoon > 단계별로 풀어보기' 카테고리의 다른 글

[BOJ / 백준] 3009번 네 번째 점 C++ 문제 풀이  (0) 2020.11.11
[BOJ / 백준] 1085번 직사각형에서 탈출 C++ 문제 풀이  (0) 2020.11.11
[BOJ / 백준] 4948번 베르트랑 공준 C++ 문제 풀이  (0) 2020.11.10
[BOJ / 백준] 1929번 소수 구하기 C++ 문제 풀이  (2) 2020.11.10
[BOJ/백준] 2581번 소수 C++ 문제 풀이  (0) 2020.11.10
'Baekjoon/단계별로 풀어보기' 카테고리의 다른 글
  • [BOJ / 백준] 3009번 네 번째 점 C++ 문제 풀이
  • [BOJ / 백준] 1085번 직사각형에서 탈출 C++ 문제 풀이
  • [BOJ / 백준] 4948번 베르트랑 공준 C++ 문제 풀이
  • [BOJ / 백준] 1929번 소수 구하기 C++ 문제 풀이
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (339) N
      • Web (8)
      • Java (7)
      • Spring (19) N
      • Git (16)
      • MyBatis (1)
      • HTML & CSS (14)
      • JavaScript (11)
      • DevOps (4)
      • Cloud (8)
      • Lanuage (13)
        • C++ (3)
        • Python (10)
      • DB (1)
        • MySQL (1)
        • Oracle (2)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    oracle
    자료구조
    aws
    BOJ
    Tistory
    codeup
    JavaScript
    spring
    github
    Python
    웹
    C
    Cloud
    c++
    Programmers
    web
    단계별로 풀어보기
    clean code
    git
    SourceTree
    myBatis
    CSS
    VS Code
    CodeUp 기초 100제
    db
    java
    알고리즘
    HTML
    MySQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
[BOJ / 백준] 9020번 골드바흐의 추측 C++ 문제 풀이
상단으로

티스토리툴바