262
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 ≤ 10
18
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.
#include <bits/stdc++.h> using namespace std; int main() { long long int x , y , n , m , p , q; cin >> x >> y; int d = 2; while(x % d) d++; n=x/d; m=y/(d-1); long long int delta = (n+1-m) * (n+1-m) - 4*n; long long int r = sqrt(delta); p = (n + 1 - m - r) / 2; q = (n + 1 - m + r) / 2; cout << d << ' ' << p << ' ' << q; return 0; }
Comentarii