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

C++에서 주어진 길이의 합성수 범위 찾기


숫자 n이 있다고 가정합니다. 범위의 모든 숫자가 합성이고 범위의 길이가 n인 양의 정수 범위를 찾아야 합니다. 범위가 두 개 이상인 경우 하나의 범위를 인쇄합니다. 합성수는 1과 자기 자신 이외의 약수가 하나 이상 있는 수입니다.

범위의 길이가 n이므로 첫 번째 숫자가 a이면 다른 숫자는 a + 1, a + 2, …, a + n – 1이며 모두 합성이어야 합니다. 여기서 x가 양의 정수인 경우 x는 2, 3, 4, …, p – 1의 인수를 갖습니다. 그래서 p! + 나는 요인 i를 가지고 있으므로 p! + 나는 합성이어야 한다. 피! + 2, 피! + 3, ... 피! + p – 1은 모두 합성입니다. 따라서 범위는 [p! + 2, 피! + p – 1]

예시

#include<iostream>
using namespace std;
int fact (int n) {
   if (n == 0)
      return 1;
   return n * fact(n-1);
}
void showRange(int n) {
   int a = fact(n + 2) + 2;
   int b = a + n - 1;
   cout << "[" << a << ", " << b << "]";
}
int main() {
   int n = 3 ;
   showRange(n);
}

출력

[122, 124]