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

Va rog am nevoie urgent! in c++
1.se da n numar natural.afisati in ordine descrescatoare numerele prime din [n,2n].
2.se dau a si b numere naturale. care dintre numerele a si b are mai multi divizori?

Răspunsuri la întrebare

Răspuns de xXDenisXxRetro
1

Răspuns:

Salut! Aici ai problema 1:

#include <iostream>

using namespace std;

int n,i,j,k;

int main()

{

   cout << "N=";

   cin  >> n;

   for(i=2*n;i>=n;i--)

   {

       k=0;

       for(j=2;j<=i/2;j++)

           if(i%j==0)

               k++;

       if(k==0)

           cout << i << " ";

   }

   return 0;

}

Iar aici ai problema 2:

#include <iostream>  

using namespace std;  

int a,b,ka,kb,i;  

int main()

{

   cout << "A=";

   cin  >> a;

   cout << "B=";

   cin >> b;

   ka=0; kb=0;

   for(i=1;i<=a;i++)

       if(a%i==0)

           ka++;

   for(i=1;i<=b;i++)

       if(b%i==0)

           kb++;

   if(ka>kb)

       cout << "Numarul " << a << " are mai multi divizori";

   else if(ka<kb)

       cout << "Numarul " << b << " are mai multi divizori";

   else

       cout << "Ambele numere au acelasi numar de divizori";

   return 0;

}

Explicație:

In prima problema am parcurs invers intervalul [n,2n] iar la fiecare numar din interval verificam cati divizori are, iar daca avea 2 (in cazul de sus niciunul de oarece cand verificam ce divizori are parcurgem intervalul [2, jumatatea numarului] ca sa avem un program optim) atunci il afisam.

In a doua problema am numarat divizorii la A si la B, dupa care am comparat numarul divizorilor celor 2 numere.


toadervladmihai7: ms
Alte întrebări interesante