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

Se consideră trei numere naturale n, a şi b (a<=b<=n). Să se creeze un program care permite afişarea factorilor primi ce aparţin intervalului (a, b) şi a puterilor la care aceştia apar în descompunerea lui n. Exemplu: pentru n=36, a= 1, b=10 se va afişa:
2 exponent 2
3 exponent 2

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int a,b,n,f, gasit=0,p=0;

   cin >> n >> a >> b;

   f=2;

   while(n%f==0)

   {

       n=n/f;

       p++;

   }

   if(p>0)

   {

       if (f>a && f<b)

          {

              gasit=1;

              cout<<f<<" exponent "<<p<<"\n";

          }

   }

   f=3;

   while(n>1)

   {

       p=0;

       while(n%f==0)

       {

           n=n/f;

           p++;

       }

       if(p>0)

       {

           if (f>a && f<b)

           {

               gasit=1;

                cout<<f<<" exponent "<<p<<"\n";

           }

       }

       f=f+2;

   }

   if (gasit==0) cout << "nu exista";

   return 0;

}

Explicație:

am adăugat cazui "nu exista" când în intervalul (a;b) nu exista factori primi de la descompunerea lui n în factori primi...

Alte întrebări interesante