fbpx

Problema #63 – Factorizare1 – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Să se scrie un program care citeşte un număr natural n şi determină factorul care apare în descompunerea în factori primi a lui n la puterea cea mai mare.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieşire

Programul afișează pe ecran numărul prim p, cu semnificaţia precizată.

Restricţii şi precizări

  • 1 < n < 2.100.000.000
  • dacă în descompunerea în factori primi a lui n apar mai mulţi factori la puterea maximă, se va afişa cel mai mare dintre ei

Exemplu

Intrare

405

Ieșire

3

Explicație

405 = 3 4 * 5 1 . Astfel, factorul care apare la puterea cea mai mare este 3

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int d=2;
    int p;
    int max=0;
    int dmax=0;
    while(n>1)
    {
        p=0;
        while(n%d==0)
        {
            p++;
            n/=d;
        }
        if(p>0)
        {
            if(p>=max && d>dmax)
            max=p , dmax=d;
        }
        d++;
        if(d*d>n)
        d=n;
    }
    cout << dmax;
}
Comentarii

S-ar putea sa iti placa