본문으로 바로가기

[백준 9020] 골드바흐의 추측

category PS/백준 문제풀이 2019. 8. 5. 17:48
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 

문제 : https://www.acmicpc.net/problem/9020

 

9020번: 골드바흐의 추측

문제 1보다 큰 자연수 중에서  1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다.

www.acmicpc.net

 

계속 런타임 에러 나길래 화났음..ㅜㅜ

그 전문제들이랑 똑같이 에라토스테네스 체 이용해서 소수들 따로 구한 뒤에 찾아주려는데 

알고 보니까 sqrt(10000)까지만 for문을 돌리는 바람에 primes에 그 뒤의 숫자들이 추가가 안되는 상태...

그래서 지우고 10000까지 돌려주니까 정답! (11줄 주석처리, 14줄 수정!)

 

[소수 관련 문제]

2019/08/05 - [PS/백준 문제풀이] - [백준 2581] 소수

2019/08/05 - [PS/백준 문제풀이] - [백준 4948] 베르트랑 공준

 

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
 
int t, n;
bool isNotPrime[10001];
vector<int> primes;
 
void eratos(){
    //int maxi = sqrt(10000);
    
    isNotPrime[1= true;
    for(int i = 2; i <= 10000; i++){
        if(!isNotPrime[i]){
            primes.push_back(i);
            for(int j = i*i; j <= 10000; j += i)
                isNotPrime[j] = true;
        }
    }
}
 
void solve(int a){
    pair<intint> mini;
        for(int i = 0; primes[i] < a; i++){
            int cur = primes[i];
            int another = a - cur;
            int gap = another - cur;
            
            if(gap < 0)
                break;
            
            if(!isNotPrime[another]){
                mini.first = cur;
                mini.second = another;
            }
        }
    
    cout << mini.first << " " << mini.second << '\n';
}
 
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> t;
    
    eratos();
    
    while(t--){
        cin >> n;
        solve(n);
    }
    
    return 0;
}
 
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

'PS > 백준 문제풀이' 카테고리의 다른 글

[백준 2098] 외판원 순회  (0) 2019.08.06
[백준 11000] 강의실 배정  (0) 2019.08.05
[백준 4948] 베르트랑 공준  (0) 2019.08.05
[백준 2581] 소수  (0) 2019.08.05
[백준 1008] A/B  (0) 2019.08.05