Informatică, întrebare adresată de elena1216, 9 ani în urmă

Se da n numar natural . Verificati daca exista k si h astfel incat n = k! + h! .

Exemplu: n=26 =>DA
26 = 2! + 4!

Multumesc anticipat!

Răspunsuri la întrebare

Răspuns de AntiEaglesDavids
0
#include <iostream>

int main()
{
    const int totalFacts = 21;
    long long factorials[totalFacts] {};

    factorials[0] = 1;
    for (int i = 1; i < totalFacts; ++i)
        factorials[i] = factorials[i - 1] * i;

    int n;
    std::cin >> n;
    for (int i = 0; i < totalFacts; ++i)
        for (int j = i; j < totalFacts; ++j)
            if (factorials[i] + factorials[j] == n) {
                std::cout << "DA";
                return 0;
            }

    std::cout << "NU";
}

Alte întrebări interesante