Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm đoạn các số hợp số liên tiếp có độ dài cho trước trong C++

Cho số n. Tìm đoạn n số nguyên dương liên tiếp đều là số hợp số (có ước ngoài 1 và chính nó). Nếu nhiều đoạn, in một đoạn bất kỳ.

Sử dụng tính chất: (n+2)! + 2, (n+2)! + 3, ..., (n+2)! + (n+1) đều là hợp số vì (n+2)! chia hết cho mọi số từ 2 đến n+1. Do đó đoạn [(n+2)! + 2, (n+2)! + n + 1] thỏa mãn.

Ví dụ

#include <iostream>
using namespace std;

long long fact(int n) {
    if (n == 0) return 1;
    return n * fact(n - 1);
}

void showRange(int n) {
    long long a = fact(n + 2) + 2;
    long long b = a + n - 1;
    cout << "[" << a << ", " << b << "]";
}

int main() {
    int n = 3;
    showRange(n);
}

Kết quả

[122, 124]