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

Două numere a și b sunt numite generatoare ale unui număr natural n dacă a∙b+[a/b]=n, unde s-a notat cu [c] partea întreagă a numărului real c. Se citește un număr natural n (n≥2) și se cere să se afișeze pe ecran toate perechile distincte de numere naturale cu proprietatea că sunt generatoare ale lui n și că primul număr din pereche este par. Numerele din fiecare pereche sunt separate prin simbolul minus (-), iar perechile sunt separate prin câte un spațiu. Dacă nu există astfel de perechi, se scrie mesajul nu exista. Scrieţi, în pseudocod, algoritmul de rezolvare a problemei enunțate. Exemplu: dacă n=2020 se afișează pe ecran 2-1010 4-505 10-202 20-101 96-21 200-10 606-3 808-2 1010-1

Răspunsuri la întrebare

Răspuns de gabi54t
1

Răspuns:

#include <iostream>

using namespace std;

void generatoare(unsigned n)

{

   unsigned pp=0;

   for(unsigned int i=1; i<=n/2; i++)

       for(unsigned int j=n/2; j>=1; j--)

           if((i*j)+(i/j)==n && i%2==0)

           {

               cout<<i<<"-"<<j<<" ";

               pp=1;

           }

   if(pp==0)

       cout<<"nu";

}

int main()

{

   unsigned n;

   cin>>n;

   generatoare(n);

   return 0;

}

Explicație:

Alte întrebări interesante