티스토리 뷰

문제 링크 : 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보다 크다면 종료하고, 아니라면 위 과정을 계속 반복한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
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
글 보관함