Cerința
Se dă un număr natural n
. Să se determine numărul din intervalul [1,n]
care are număr maxim de divizori. Dacă există mai multe asemenea numere, se va afișa cel mai mic dintre ele.
Date de intrare
Programul citește de la tastatură numărul n
.
Date de ieşire
Programul va afișa pe ecran valoarea cerută.
Restricții și precizări
0 < n <= 100.000
Exemplu
Intrare
20
Ieșire
12
Explicații:
12
, 18
şi 20
au număr maxim de divizori, dar 12
este cel mai mic.
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 NrDivMax:
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
int Max =1, NrMax = 1;
for(int i=2 ; i<=n ; ++i){
int nr = 1, d = 2, x = i;
while(x>1){
int p = 0;
while(x%d==0)
++p , x /= d;
nr *= p+1;
++d;
if( d*d > x && x > 1 )
nr *= 2, x = 1;
}
if(nr > NrMax)
NrMax = nr, Max = i;
}
cout << Max;
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 #245 NrDivMax
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #245 NrDivMax 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!