👤

Fiind dat un numar natural x,sa se afiseze factorul prim care apare la puterea cea mai mare in descompunerea lui x in factor primi.
 Ex.:1620 ,descompunerea este (2^2)*(3^4)*5 factorul cerut este 3


Răspuns :

#include <iostream>
using namespace std;
long long n,d,fm, fact,maxx;
int main()
{
    cin>>n;
    d=2;
    do
    {
        fm=0;
        while(n%d==0)
        {
            fm++;
            n=n/d;
        }
        if((fm>0)&&(fm >= maxx)) maxx = fm, fact = d;
        d++;
        if((n>1)&&(d*d>n)) if(maxx > 1)  n = 1;
                          else fact = n, n = 1;
    } while(n>1);
    cout << fact;
    return 0;
}