Răspuns :
Salut! Iti dau o sursa in C++, dar pentru ca nu ai specificat daca divizorii ar trebui scrisi in ordine crescatoare...pentru a pastra eficienta acestui algoritm, divizorii nu apar in ordine crescatoare.
#include <iostream>
using namespace std;
long long n,d,s;
int main()
{
cin>>n;
for(d=1;d*d<n;d++)
if(n%d==0) cout << d << " " << n/d << " ";
if(d*d==n) cout << d;
return 0;
}
citeste n (numar natural)
pentru d = 1, sqrt(n)
daca n % d = 0
atunci
scrie d
scrie n/d
sfarsit daca
sfarsit pentru
daca d * d = n
atunci
scrie d
sfarsit daca
Am notat sqrt(n) radicalul lui, % - restul impartirii intregi, / - catul impartirii intregi
Succes!
#include <iostream>
using namespace std;
long long n,d,s;
int main()
{
cin>>n;
for(d=1;d*d<n;d++)
if(n%d==0) cout << d << " " << n/d << " ";
if(d*d==n) cout << d;
return 0;
}
citeste n (numar natural)
pentru d = 1, sqrt(n)
daca n % d = 0
atunci
scrie d
scrie n/d
sfarsit daca
sfarsit pentru
daca d * d = n
atunci
scrie d
sfarsit daca
Am notat sqrt(n) radicalul lui, % - restul impartirii intregi, / - catul impartirii intregi
Succes!
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!