Informatică, întrebare adresată de madalinamaduta1, 9 ani în urmă

Se citesc două numere naturale a și b. Să se determine cel mai mic și cel mai mare număr din intervalul [a,b] cu număr maxim de divizori pari şi numărul maxim de divizori pari.

Răspunsuri la întrebare

Răspuns de Ruxy01
4
#include <iostream>
using namespace std;
int n, d, nr, a, b, maxx = -INT_MAX, pnr, nrd, unr;
int main()
{
    cin >> a >> b;
    if(a % 2 == 1) a ++;
    for(n = a; n <= b; n = n + 2)
    {
        for(d = 1; d * d < n; d ++)
        if(n % d == 0)
         {
             if(d % 2 == 0) nrd ++;
             if((n/d) % 2 == 0) nrd ++;
         }
         if(d * d == n && d % 2 == 0) nrd ++;

    if(nrd > maxx) maxx = nrd, pnr = unr = n, nr = 1;
     else if(nrd == maxx) unr = n, nr ++;
    nrd = 0;
    }
    cout << maxx << " " << pnr << " " << unr;
    return 0;
}


Alte întrebări interesante