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

C++ 프로그램에서 주어진 곱으로 두 개의 고유한 소수 찾기

<시간/>

이 튜토리얼에서는 주어진 곱으로 두 개의 고유한 소수를 찾는 프로그램을 작성할 것입니다. 몇 가지 예를 살펴보겠습니다.

입력 − 21

출력 − 3 7

여기서 우리는 주어진 곱보다 작은 모든 소수를 가질 필요가 있습니다. 소수가 있으면 쌍을 쉽게 찾을 수 있습니다. 문제를 해결하려면 아래 단계를 따르세요.

  • 범위의 숫자가 소수인지 여부를 저장하기 위해 제품 및 부울 배열을 초기화합니다.

  • 주어진 곱보다 작은 모든 소수를 찾아 배열에 저장합니다.

  • 주어진 제품까지 반복합니다.

    • 현재 숫자가 소수이고 n / current_number도 소수인 경우 고유한지 여부를 확인합니다.

    • 구별되는 경우 인쇄하십시오.

예시

코드를 봅시다.

#include <bits/stdc++.h>
using namespace std;
bool primes(int n, bool primeStatus[]) {
   primeStatus[0] = primeStatus[1] = false;
   for (int i = 2; i <= n; i++) {
      primeStatus[i] = true;
   }
   for (int i = 2; i * i <= n; i++) {
      if (primeStatus[i] == true) {
         for (int j = i * 2; j <= n; j += i)
            primeStatus[j] = false;
      }
   }
}
int main() {
   int n = 21;
   bool primeStatus[n + 1], pairsFound = false;
   primes(n, primeStatus);
   for (int i = 2; i < n; i++) {
      int pair = n / i;
      if (primeStatus[i] && primeStatus[pair] && pair != i && pair * i == n) {
         cout << i << " " << pair << endl;
         pairsFound = true;
         break;
      }
   }
   if (!pairsFound){
      cout << "No pairs";
   }
   return 0;
}

출력

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

3 7

결론

튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.