Informatică, întrebare adresată de bjrvictor, 8 ani în urmă

Se dau doua numere naturale n si p. Sa se stabileasca daca p este prim si in caz afirmativ sa se afiseze la ce putere apare p ca factor prim in descompunerea numarului n in factori primi.


boiustef: daca nu e prim apare 0 ???
bjrvictor: da
boiustef: nu, 0 apare atunci cand p lipseste in descompunerea in factori primi a lui n
boiustef: de exemplu pentru n=36 si p=7
p este prim dar lipseste in descompunerea in factori primi a lui 36=2^2 * 3^2
bjrvictor: coroana se poate da doar daca a mai raspuns si altcineva la intrebare?
boiustef: nu cunosc ... cu toate ca sunt de un an pe acest site.. :))) succese!

Răspunsuri la întrebare

Răspuns de boiustef
2

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n,p,e=0;

   cin >> n >> p;

   int prim=1;

   if (p<2) prim=0;

   else

   {

       if (p==2) prim=1;

       else

       {

           if (p%2==0) prim=0;

           else

           {

               for (int i=3; i*i<=p; i+=2)

               if (p%i==0) {prim=0; break;}

           }

       }

   }

   if (prim)

   {

       while (n%p==0)

       {

           ++e;

           n=n/p;

       }

       cout << e;

   }

   else cout << "nu-i prim";

   return 0;

}

Explicație:

Alte întrebări interesante