Documente Academic
Documente Profesional
Documente Cultură
Date nestructurate
Nr
.
Algoritmul Implementare C++
crt
.
CMMDC - while(m != 0)
Euclid
(împărțiri) {
int r = n % m;
n = m;
m = r;
}
cout << n;
1.
CMMDC - while(n != m)
scăderi
repetate if(n > m)
n -= m;
else
m -= n;
cout << n;
Algoritmul eficient:
for(int d =2 ; d * d <= n ; d ++ )
2. if(n % d == 0)
{
cout << d << " ";
if(d * d < n) // dacă nu e pătrat perfect
cout << n / d << " ";
}
Numere prime int ok = 1; // presupunem ca n este prim
if(n < 2)
ok = 0; // 0 si 1 nu sunt prime
for(int d =2 ; d * d <= n ; d ++)
if(n % d == 0)
ok = 0;
if(ok)
cout << n << " este prim";
else
cout << n << " nu este prim";
Algoritmul eficient:
bool prim;
if(n < 2)
prim = false; // 0 si 1 nu sunt prime
else
if(n == 2)
3.
prim = false; // 2 e prim
else
if(n % 2 == 0)
prim = false; // numerele pare, > 2,
neprime
else
{
prim = true; // presupunem ca n este prim
for(int d =3 ; d * d <= n ; d +=2)
if(n % d == 0)
prim = false;
}
if(prim)
cout << n << " este prim";
else
cout << n << " nu este prim";
4. Descompuner int d = 2, p;
ea în factori
primi // d va fi, pe rand, fiecare factor prim din descompunere
// p va fi puterea lui d in descompunere
// il impartim pe n la d in mod repetat, pana cand devine 1
while(n > 1)
{
// numaram de cate ori se imparte n la d. Aceasta va
fi puterea lui d in descompunere
p = 0;
while(n % d == 0)
{
p++;
n /= d;
}
//daca s-a facut cel putin o impartire, afisam
factorul si puterea
if(p)
cout << d << " " << p << '\n';
d++;
// daca d * d il depaseste pe n si n nu este 1,
decidem ca n este prim,
// si este factor in descompunerea valorii initiale
a lui n
if(n>1 && d * d > n)
d = n; // trecem direct la n, urmatorul factor
din descompunere
}
Cifrele unui while(n != 0) // cat timp n este nenul - mai are cifre
număr
{
int uc = n % 10; //determinam ultima cifra a lui n
6. cin >> x;
if(x < min)
min = x;
}
Șirul lui Numerele Fibonacci sunt numere naturale care fac parte din
Fibonacci următorul șir, în care fiecare număr începând cu al treilea este
egal cu suma celor două de dinainte:
a = 1;
b = 1;
cout << a << " " << b;
7. for(int i =3 ; i < = n ; i ++)
{
c = a + b;
cout << c << " ";
a = b;
b = c;
}