알고리즘 연습
C++ 9020 골드바흐의 추측
스폰지박
2021. 9. 28. 20:09
반응형
#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
반응형