알고리즘 연습

C++ 9020 골드바흐의 추측

728x90

#include <iostream>
#include <cmath>

using namespace std;

bool isPrime(int i) {//소수면 true를 반환함.
	int rt;
	rt = sqrt(i);
	if (rt == 1 && i != 1)
		return true;
	if (i % 2) {
		for (int j = 2; j <= rt;j++) {
			if (!(i % j))
				return false;
			if (j == rt)
				return true;
		}
	}
}

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	int t;
	cin >> t;
	while (t--) {
		int n;
		cin >> n;
		for (int i = n / 2; i >= 2;i--) {
			if (isPrime(i) && isPrime(n - i)) { 
				cout << i << " " << n - i << '\n';
				break;
			}
		}
	}
	//n이 8일 경우 n/2부터 2까지 돌려서 i와 n-i가 모두 소수인지 확인하고 출력함.
    //i가 소수인지를 먼저 파악해야하기에 n/2까지만 돌려도 확인이 가능하다.
}

bool 형식의 함수를 왜쓰는지 잘 몰랐는데 이번기회에 유용성을 잘 알게되는 기회가 된것같다.

 

 

 

 

 

https://codesyun.tistory.com/67?category=966171 

 

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

단계별로 풀어보기 - 수학 2단계 - [5단계] 9020번 문제 문제 링크 : www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서  1과 자기 자신을 제외한 약수가 없는 자연수를 소수라..

codesyun.tistory.com

 

728x90

'알고리즘 연습' 카테고리의 다른 글

C++ 4153 직각삼각형  (0) 2021.09.28
C++1085 직사각형에서 탈출  (0) 2021.09.28
C++ 4948 베르트랑 공준  (0) 2021.09.27
C++ 11653 소인수분해  (0) 2021.09.27
C++ 2581 소수  (0) 2021.09.27