Răspuns :
#include <iostream>
using namespace std;
int nrmaxdiv(int x)
{
int d, nd=0;
for (d=1; d*d<x; ++d)
{
if (x%d==0)
{
++nd; if (x/d!=d ) ++nd;
}
}
if (d*d==x) ++nd;
return nd;
}
int main()
{
int n, max, i, a=1;
cin >> n; max=1;
for (i=n/2; i<=n; ++i)
{
if (nrmaxdiv(i)>max) { max=nrmaxdiv(i); a=i;}
}
cout << a << endl;
return 0;
}
#include <stdio.h>
#include <math.h>
int countDivisors(int n)
{
int cnt = 0;
for (int i = 1; i <= sqrt(n); i++) {
if (n % i == 0) {
if (n / i == i)
cnt++;
else
cnt = cnt + 2;
}
}
return cnt;
}
int main()
{
int a;
while(true){
printf("\n\nIntroduceti un numar: ");
scanf("%d",&a);
int max=0;
int nr;
for(int i=1;i<=a;i++){
if(countDivisors(i)>max){
max=countDivisors(i);
nr=i;
}
}
printf("Cel mai mare numar de divizori il are %d - %d divizori.",nr,max);
}
return 0;
}