Cerinţa
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.
Date de intrare
Programul citește de la tastatură numerele a b
.
Date de ieşire
Programul afișează pe ecran numerele NRD MIN MAX
, separate prin exact un spațiu , reprezentând numărul maxim de divizori pari ai numerelor din [a,b]
, cel mai mic şi respectiv cel mai mare număr din interval cu număr maxim de divizori pari.
Restricţii şi precizări
0 < a < b < 1.000.000.000
b-a ≤ 1000
Exemplu
Intrare
10 20
Ieșire
4 12 20
Explicație
Numărul maxim de divizori pari pentru numerele din intervalul [10,20]
este 4
. Numerele din interval cu 4
divizori pari sunt 12
, 16
şi 20
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema DivizoriPariInterval:
#include <iostream>
using namespace std;
int main(){
int d, a, b, nrdivmax=-1, max ,min, cc;
int C = 0;
cin >> a >> b;
if(a%2==1)
a++;
for(int n=a;n<=b;n+=2){
C = 0;
int d2 = 0;
int m = n;
while(m%2 == 0)
m /= 2, d2++;
for(d=1 ; d*d<m ; d+=2)
if(n % d == 0)
C +=2;
if(d * d == n)
C ++;
C *= d2;
//cout << n << " ... " << C << endl;
if(C>nrdivmax)
nrdivmax = C, min = max = n, cc = 1;
else
if(C == nrdivmax)
max = n, cc++;
}
cout << nrdivmax << " " << min << " " << max;
//cout << endl << cc;
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #389 DivizoriPariInterval
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #389 DivizoriPariInterval de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!