# PBinfo #2769 – TREIprime – Rezolvare C++

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

## Enunț

Cerința
Se dă un număr natural n care este produs de trei numere prime distincte. Ştiind că există m numere naturale prime cu n  şi mai mici decât acesta, să se afişeze în ordine crescătoare cele trei numere prime din descompunerea lui n. 

Date de intrare
Programul citește de la tastatură numerele n şi m.

Date de ieșire
Programul va afișa pe ecran numerele prime din descompunerea lui n.

Restricții și precizări

1 ≤ m ≤ n ≤ 1018

Exemplu:
Intrare

66 20
Ieșire

2 3 11
Explicație
Avem 66=2•3•11 şi există 20 de numere prime cu 66, mai mici decât acesta.

## Cod sursă C++

```cpp
#include <iostream>
#include <math.h>
using namespace std;
long long n, m, i, delta, q, r ;
int main()
{
    cin >> n >> m ;
    i = 2 ;
    while( n % i != 0 ) i++ ;
    cout << i << " " ;
    n = n / i ;
    m = m / (i-1) ;
    delta = ( n - m + 1 ) * ( n - m + 1 ) - 4 * n ;
    q = (( n - m + 1 ) - (long long)sqrt(delta)) / 2 ;
    r = (( n - m + 1 ) + (long long)sqrt(delta)) / 2 ;
    cout << q << " " << r ;
    return 0;
}
```

## Resurse

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