Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

주어진 숫자 n보다 작은 가장 가까운 소수 C++

<시간/>

숫자 n이 주어지면 n보다 작은 가장 가까운 소수를 찾아야 합니다. n - 1부터 확인하기 시작하면 번호를 쉽게 찾을 수 있습니다. 몇 가지 예를 살펴보겠습니다.

입력

10

출력

7

알고리즘

  • 숫자 n을 초기화합니다.
  • n - 1에서 1까지 반복하는 루프 작성
    • 찾은 첫 번째 소수 반환
  • 주어진 n보다 작은 소수를 찾지 못한 경우 -1 반환

구현

다음은 위의 알고리즘을 C++로 구현한 것입니다.

#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n) {
   if (n == 2) {
      return true;
   }
   for (int i = 2; i <= ceil(sqrt(n)); i++) {
      if (n % i == 0) {
         return false;
      }
   }
   return true;
}
int getNearestPrimeNumber(int n) {
   for (int i = n - 1; i > 1; i--) {
      if (isPrime(i)) {
         return i;
      }
   }
   return -1;
}
int main() {
   int n = 20;
   cout << getNearestPrimeNumber(n) << endl;
   return 0;
}

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

19