Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int n, k, p, d, maxim = 0, w, cerinta;

int main()

{

   cin >> n;

   while(n % 2 == 0 && n > 1)

       n /= 2;

   if(n == 1)

       k = 2;

   else

   {

       d = 3;

       while(n > 1)

       {

           p = 0;

           while(n % d == 0)

           {

               p++;

               n /= d;

           }

           if(p > 0)

           {

               k = d;

               if(p > maxim)

                   maxim = p, w = d;

           }

           d += 2;

       }

   }

   cin >> cerinta;

   switch (cerinta)

   {

       case 1: cout << k; break;

       case 2: cout << w; break;

   }

   return 0;

}

Explicație: