λ¬Έμ
1λ³΄λ€ ν° μμ°μ μ€μμ 1κ³Ό μκΈ° μμ μ μ μΈν μ½μκ° μλ μμ°μλ₯Ό μμλΌκ³ νλ€. μλ₯Ό λ€μ΄, 5λ 1κ³Ό 5λ₯Ό μ μΈν μ½μκ° μκΈ° λλ¬Έμ μμμ΄λ€. νμ§λ§, 6μ 6 = 2 × 3 μ΄κΈ° λλ¬Έμ μμκ° μλλ€.
골λλ°νμ μΆμΈ‘μ μ λͺ ν μ μλ‘ μ λ―Έν΄κ²° λ¬Έμ λ‘, 2λ³΄λ€ ν° λͺ¨λ μ§μλ λ μμμ ν©μΌλ‘ λνλΌ μ μλ€λ κ²μ΄λ€. μ΄λ¬ν μλ₯Ό 골λλ°ν μλΌκ³ νλ€. λ, μ§μλ₯Ό λ μμμ ν©μΌλ‘ λνλ΄λ ννμ κ·Έ μμ 골λλ°ν νν°μ μ΄λΌκ³ νλ€. μλ₯Ό λ€λ©΄, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 11, 14 = 7 + 7μ΄λ€. 10000λ³΄λ€ μκ±°λ κ°μ λͺ¨λ μ§μ nμ λν 골λλ°ν νν°μ μ μ‘΄μ¬νλ€.
2λ³΄λ€ ν° μ§μ nμ΄ μ£Όμ΄μ‘μ λ, nμ 골λλ°ν νν°μ μ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμμ€. λ§μ½ κ°λ₯ν nμ 골λλ°ν νν°μ μ΄ μ¬λ¬ κ°μ§μΈ κ²½μ°μλ λ μμμ μ°¨μ΄κ° κ°μ₯ μμ κ²μ μΆλ ₯νλ€.
μ λ ₯
첫째 μ€μ ν μ€νΈ μΌμ΄μ€μ κ°μ Tκ° μ£Όμ΄μ§λ€. κ° ν μ€νΈ μΌμ΄μ€λ ν μ€λ‘ μ΄λ£¨μ΄μ Έ μκ³ μ§μ nμ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
κ° ν μ€νΈ μΌμ΄μ€μ λν΄μ μ£Όμ΄μ§ nμ 골λλ°ν νν°μ μ μΆλ ₯νλ€. μΆλ ₯νλ μμλ μμ κ²λΆν° λ¨Όμ μΆλ ₯νλ©°, 곡백μΌλ‘ ꡬλΆνλ€.
μ ν
- 4 ≤ n ≤ 10,000
νμ΄
μ΄ λ¬Έμ μ ν΅μ¬μ N/2 - iμ N/2 + iκ° λ λ€ μμμ¬μΌ νλ€λ κ²μ΄λ€. (N - iμ iμ κ΄κ³λ‘λ μκ°ν μ μλ€)
https://cryptosalamander.tistory.com/30μ νμ΄μμ λ°°μ΄μ μ μ₯νλ λΆλΆμ μ°Έκ³ νλ€! λλ MAX=10000μΌλ‘ λκ³ λ리거λ 맀 μ λ ₯λ§λ€ forλ¬ΈμΌλ‘ μ²λ¦¬νλλ°, μμ μ²μλΆν° ν λ²μ λ°μμ λ°°μ΄μ λ£κ³ κ³μ°νλ λ°©μμ΄ λ κΉλν κ² κ°λ€!
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int T, max=0;
cin >> T;
// νκΊΌλ²μ λ°μμ λ°°μ΄μ μ μ₯
int *num = new int[T];
for (int i = 0; i<T; i++){
cin >> num[i];
if (max < num[i])
max = num[i];
}
// ν
μ€νΈ μΌμ΄μ€μ μ΅κ³ κΈΈμ΄κΉμ§ bool λ°°μ΄ μμ±
bool isPrime[max+1];
fill_n(isPrime, max+1, true);
isPrime[0] = false;
isPrime[1] = false;
// μμ νμ
for (int i=2; i<=sqrt(max); i++){
if (isPrime[i]){
for (int j=i*2; j<=max; j+=i)
isPrime[j] = false;
}
}
// 골λλ°ν νν°μ
μΆλ ₯ -> N/2 + iμ N/2 - iκ° λͺ¨λ μμκ° λλλ‘
for (int i=0; i<T; i++){
for (int j=num[i]/2; j>0; j--){
if (isPrime[j] && isPrime[num[i]-j]){
cout << j << " " << num[i]-j << "\n";
break;
}
}
}
}
N/2κΉμ§λ μμμΌλ κ±°κΈ°μμ μλͺ» μ κ·Όν΄μ μ‘°κΈ μ΄λ €μ λ λ¬Έμ
'β¨ Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€/C++] 3009 : λ€ λ²μ§Έ μ (0) | 2021.08.12 |
---|---|
[λ°±μ€/C++] 1085λ² : μ§μ¬κ°νμμ νμΆ (0) | 2021.08.12 |
[λ°±μ€/C++] 4948λ² : λ² λ₯΄νΈλ κ³΅μ€ (0) | 2021.08.08 |
[λ°±μ€/C++] 1929λ² : μμ ꡬνκΈ°(μκ° μ΄κ³Ό, μλΌν μ€ν λ€μ€μ 체) (0) | 2021.08.07 |
[λ°±μ€/C++] 11653λ² : μμΈμλΆν΄ (0) | 2021.08.07 |
λκΈ