728x90
#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
728x90
'알고리즘 연습' 카테고리의 다른 글
C++ 4153 직각삼각형 (0) | 2021.09.28 |
---|---|
C++1085 직사각형에서 탈출 (0) | 2021.09.28 |
C++ 4948 베르트랑 공준 (0) | 2021.09.27 |
C++ 11653 소인수분해 (0) | 2021.09.27 |
C++ 2581 소수 (0) | 2021.09.27 |