在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 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告