在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]
广告