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

Sa se determine cel mai mic numar natural n care are exact d divizori. Sa se afiseze acest numar împreuna cu divizorii sai.

Răspunsuri la întrebare

Răspuns de boiustef
0

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n, d;

   cin >> d;

   int nr, gasit=0, b;

   n=1;

   while (gasit==0 && n<10000000) {

       nr=0;

       for (b=1; b*b<n; b++) {

           if (n%b==0) {

               nr=nr+2;

           }

       }

       if (b*b==n) ++nr;

       if (nr==d) {

          gasit=1;

       }

       else ++n;

   }

   if (gasit) {

       cout << n << endl;

       for (b=1; b<=n/2; b++) {

           if (n%b==0) cout << b << " ";

       }

       cout << n;

   }

   else {

       cout << "nu exista";

   }

   return 0;

}

Explicație:


boiustef: am făcut o restricție pentru n, de altfel nu e bn..
alexia5136: pai si cum e bn?
boiustef: e necesară restricția că doar nu se va duce la infinit în căutarea numărului ce respectă condițiile...
boiustef: cel puțin tipurile de date au și ele o limită superioară...
Alte întrebări interesante