티스토리 뷰
문제 링크 : https://www.acmicpc.net/problem/24039
#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n)
{
if(n <=2) return 1;
for(int i=2; i*i<=n; i++)
{
if(n%i==0) return 0;
}
return 1;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
cin >> N;
int result = 0;
int idx = 2, prev = 0;
while(1)
{
if(isPrime(idx))
{
result = prev * idx;
if(result > N) break;
prev = idx;
}
idx++;
}
cout << result;
return 0;
}
두 소수를 구하기 위해 변수 2개를 선언한다.
기본 시작은 2로, 해당 변수를 계속 증가시켜가며 다음 소수를 체크한다.
만약 소수라면, 다른 변수를 통해 이전 소수를 저장시키고, 두 소수의 곱을 구한다.
해당 곱이 입력받은 N보다 크다면 종료하고, 아니라면 위 과정을 계속 반복한다.
'백준 > 실버' 카테고리의 다른 글
[백준 15954번] 인형들 (C++) (0) | 2025.06.26 |
---|---|
[백준 11502번] 세 개의 소수 문제 (C++) (0) | 2025.06.26 |
[백준 2980번] 도로와 신호등 (C++) (0) | 2025.06.24 |
[백준 2622번] 삼각형만들기 (C++) (0) | 2025.06.17 |
[백준 13251번] 조약돌 꺼내기 (C++) (0) | 2025.06.16 |