https://www.acmicpc.net/problem/6588
#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
void CPP_INIT() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
int main(void) {
CPP_INIT();
vector<int> prime(1000002);
for (int i = 2; i < 1000002; i++) {
prime[i] = i;
}
for (int i = 2; i < int(sqrt(1000002)); i++) {
for (int j = i * i; j < 1000002; j += i) {
prime[j] = 0;
}
}
int input;
cin >> input;
while (input) {
int num1 = 2;
int num2 = input;
while (!prime[num2]) num2--;
while (num1 + num2 != input) {
if (num1 + num2 > input) {
num2--;
while (!prime[num2]) num2--;
}
else if (num1 + num2 < input) {
num1++;
while (!prime[num1]) num1++;
}
}
cout << input << " = " << num1 << " + " << num2 << endl;
cin >> input;
}
}
'알고리즘' 카테고리의 다른 글
C++ 알고리즘 - 1476 날짜 계산 (0) | 2025.01.19 |
---|---|
C++ 알고리즘 - 백준 2309 일곱 난쟁이 (0) | 2025.01.19 |
C++ 알고리즘 - 백준 17427 약수의 합 2 (0) | 2025.01.19 |
C++ 알고리즘 - 백준 4375 1 (모듈러 연산 원칙 관련) (0) | 2025.01.19 |
C++ 알고리즘 - 백준 24060 알고리즘 수업 - 병합 정렬 1 (0) | 2025.01.17 |