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

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.

Răspunsuri la întrebare

Răspuns de express
1
#include <iostream>
using namespace std;
int n ,i, d, nr, maxx=-1, m, p;
long long s;
int main()
{
cin >> m;
for(i=1;i<=m;i++)
{
    n=i;
    nr=0;
        for(d = 1 ; d * d < n ; d++)
   if(n % d == 0)
     nr++;
             nr = nr * 2;
             if(d * d == n)
        nr = nr + 1;

if(nr>maxx) maxx = nr, p = i;
}
cout<<p;
return 0;
}

Răspuns de Emil1234
0
#include <iostream>
using namespace std;
unsigned checkDiv(unsigned n){   
  int nr=0;
   
  for(int i=1;i<=n;i++)
         
    if(!(n%i))
             
        nr++;
   
  return nr;
}
int main(){   
  unsigned n,max=0,save;
   
  cin>>n;
   
  for(int i=1;i<=n;i++)
         
    if(checkDiv(i)>max){
             
        max = checkDiv(i);
             
        save = i;
         
    }
   
  cout<<save;
   
  return 0;
}
Alte întrebări interesante