在C++中查詢給定長度的合數範圍


假設我們有一個數字n。我們必須找到正整數的範圍,其中該範圍內的所有數字都是合數,並且該範圍的長度為n。如果有多個範圍,則列印任意一個範圍。合數是指至少有一個除1和自身以外的因數的數。

由於範圍的長度是n,那麼如果第一個數字是a,則其他數字是a + 1,a + 2,…,a + n – 1,都應該是合數。如果我們看到x!,其中x是正整數,則x具有2、3、4、…、p – 1的因數。因此p! + i具有因數i,所以p! + i必須是合數。p! + 2,p! + 3,… p! + p – 1都是合數。所以範圍將是[p! + 2, p! + 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]

更新於:2019年12月18日

243 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.