👤

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


Răspuns :

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     

Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Ne dorim ca informațiile furnizate să vă fi fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Revenirea dumneavoastră ne bucură, iar pentru acces rapid, adăugați-ne la favorite!


Ze Lesson: Alte intrebari