728x90
320x100
17103번: 골드바흐 파티션
첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2 < N ≤ 1,000,000을 만족한다.
www.acmicpc.net
반응형
📌 접근 방법
✔ 에라토스테네스의 체(Sieve of Eratosthenes)
- 소수를 효율적으로 찾아내는 알고리즘
- 큰 범위의 소수를 빠르게 구할 수 있음
- 시간 복잡도 : O(n log log n)
- 참고 링크
동작과정
- 2부터 시작하여 소수인 숫자를 찾음
- 현재 소수인 숫자를 제외한 그의 배수들을 모두 제거함
- 다음으로 넘어가서 아직 제거되지 않은 가장 작은 숫자를 찾고, 해당 숫자를 소수로 간주함
- 위의 과정을 반복하여 소수를 찾아냄
✅ Pass Code
#include<iostream>
#include<string>
#include<cmath>
#include<algorithm>
#include<vector>
#include<iterator>
#include<map>
#include<set>
using namespace std;
int arr[1000001]={0};
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int T;
cin>>T;
for(int i=2; i<1000000; i++){
arr[i]=i;
}
for(int i=2; i<1000000; i++){
if(arr[i]==0)continue;
else{
for(int j=i*2; j<=1000000; j+=i){
arr[j]=0;
}
}
}
while(T>0){
int x;
cin>>x;
int a, sum=0;
for(int i=2; i<=x; i++){
a=i;
if(x==(arr[a]+arr[x-a])){
sum++;
if(arr[a]==arr[x-a]){
sum++;
}
}
}
cout<<sum/2<<'\n';
T--;
}
return 0;
}
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/002.gif)
728x90
반응형
'Coding Test > Baekjoon' 카테고리의 다른 글
[BOJ/백준/C++] 11729번 하노이 탑 이동 순서 (0) | 2024.01.29 |
---|---|
[BOJ/백준/C++] 2447번 별 찍기 - 10 (0) | 2024.01.29 |
[BOJ/백준/C++] 4779번 칸토어 집합 (0) | 2024.01.28 |
[BOJ/백준/C++] 24060번 알고리즘 수업 - 병합 정렬 1 (1) | 2024.01.28 |
[BOJ/백준/C++] 5430번 AC (1) | 2024.01.28 |