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

Vă rog să îmi scrieți rezolvarea în C++, fără vectori


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


AntiEaglesDavids: de ce fara vectori?

Răspunsuri la întrebare

Răspuns de headache
0
include <iostream>
using namespace std.
long int n;
unsigned i,k,j,x,m,a;
int main ()
{
cout <<"dati numarul";
cin>>n;
k=0;
m=0;
for (i=1;i<=n,i++)
 if(n%i==0)
k++;
a=k;
for(i=n-1;i>0;i--)
{
for(j=0;j<=i;j++)
if(i%j==0)
x++;
if(x>k)
{
k=x;
m=i;
}
}
if (m==0)
cout <<"Numarul dat"<<n<<"indeplineste conditia";
else 
cout<<"Numarul"<<m<<"este cel mai mic numar care are numarul maxim de divizori din intervalul [1, "<<n<<"]";
return 0;

*//n care este cel mai mare element al multimi deci se presupune ca acesta sa aiba numarul maxim de divizori,dar se poate intampla ca n sa fie prim, deci ca sa gasim un numar care sa aiba numarul maxim de divizori plecam in sens invers de la n la 1, calculand numarul divizorilor si verificand daca este mai mare,  astfel se parcurge tot sirul de la n la 1 pentru gasirea numarului care sa indeplineasca cerinta     

Alte întrebări interesante