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

함수를 사용하여 두 간격 사이의 소수를 표시하는 C++ 프로그램

<시간/>

소수는 1보다 큰 정수이며 소수의 유일한 인수는 1과 자기 자신이어야 합니다. 첫 번째 소수 중 일부는 2, 3, 5, 7, 11, 13, 17 등입니다.

두 간격 사이에는 많은 소수가 있을 수 있습니다. 예를 들어, 간격 5와 20 사이의 소수는 5, 7, 11, 13, 17, 19입니다.

두 구간 사이의 소수를 찾아 표시하는 프로그램은 다음과 같다.

예시

#include <iostream>
using namespace std;
void primeNumbers (int lbound, int ubound) {
   int flag, i;
   while (lbound <= ubound) {
      flag = 0;
      for(i = 2; i <= lbound/2; i++) {
         if(lbound % i == 0) {
            flag = 1;
            break;
         }
      }
      if (flag == 0)
      cout<<lbound<<" ";
      lbound++;
   }
}
int main() {
   int lowerbound = 20, upperbound = 50;
   cout<<"Prime numbers between "<<lowerbound<<" and "<<upperbound<<" are: ";
   primeNumbers(lowerbound,upperbound);
   return 0;
}

출력

Prime numbers between 20 and 50 are: 23 29 31 37 41 43 47

위의 프로그램에서 main() 함수는 cout 객체와 상한 및 하한을 인수로 사용하여 primeNumbers() 함수에 대한 함수 호출만을 포함합니다. 이는 다음 코드 스니펫에서 확인할 수 있습니다.

cout<<"Prime numbers between "<<lowerbound<<" and "<<upperbound<<" are: ";
primeNumbers(lowerbound,upperbound);

PrimeNumbers() 함수에서 lbound에서 ubound까지의 각 숫자는 소수인지 여부를 확인하기 위해 테스트됩니다. 소수인 경우 표시됩니다. 이것은 while 루프를 사용하여 수행됩니다.

while 루프에서 플래그의 초기 값은 0입니다. 숫자가 소수가 아니면 for 루프에서 플래그 값이 1로 설정됩니다. for 루프가 끝난 후 플래그가 여전히 0이면 숫자가 소수이고 표시됩니다. 이는 다음 코드 스니펫에서 확인할 수 있습니다.

while (lbound <= ubound) {
   flag = 0;
   for(i = 2; i <= lbound/2; i++) {
      if(lbound % i == 0) {
         flag = 1;
         break;
      }
   }
   if (flag == 0)
   cout<<lbound<<" ";
   lbound++;
}