# PBinfo #798 – Interval Factorial – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Un interval cu proprietatea că există un singur număr natural, n (2 ≤ n ≤ 10), pentru care valoarea produsului 1·2·3·...·n aparține acestui interval este numit interval factorial al lui n.
Exemplu: [5, 8] și [3, 23] sunt intervale factoriale ale lui 3, dar [1, 15] și [7, 10] nu sunt intervale factoriale ale niciunui număr.

Cerinţa
Să se scrie o funcție C++ care, pentru un număr natural n transmis ca parametru, determină și întoarce prin intermediul unor parametri de ieșire un interval factorial al lui n de lungime maximă.

Restricţii şi precizări
Numele funcției va fi interval și va avea exact trei parametri, în această ordine:


primul parametru, n, reprezintă un număr natural din intervalul [2, 10]
a și b, prin care furnizează câte un număr natural, astfel încât expresia b-a să aibă valoare maximă, iar [a, b] să fie interval factorial al lui n.

Exemplu
Dacă n=3, apelul subprogramului va furniza prin parametrul a valoarea 3, iar prin b valoarea 23.

Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

## Cod sursă C++

```cpp
void interval(int n, int &a, int &b) {
    int p = 1;
    for (int i = 1; i <= n; i++)
        p = p * i;
    a = p / n + 1;
    b = p * (n + 1) - 1;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/798)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/798/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-798/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
