Sunteți pe pagina 1din 3

FIȘĂ DE LUCRU ”Elaborarea și depanarea programelor cu instrucțiunile limbajului C/C++” 7/03/2023

Probleme cu CMMDC și CMMMC.


 Numărul n este divizor al numărului m dacă m se împarte la n fără rest.
 Divizorii lui 18: 1, 2, 3, 6, 9, 18.
 Divizorii lui 24: 1, 2, 3, 4, 6, 12, 24.
 Cel mai mare divizor comun al numerelor 18 și 24 este 6. Prescurtat: CMMDC(18,24)=6.
 CMMDC(m,n) este cel mai mare dintre numerele la care se împart atât m, cât și n.
 Două numere m și n se numesc reciproc prime dacă CMMDC(m,n)=1. De exemplu, CMMDC(9,16)=1. A nu se
confunda cu numerele prime! Numerele 9 și 16 nu sunt prime deoarece au alți divizori în afară de 1 și numărul
însăși.
 Algoritmul lui Euclid vă permite să găsiți CMMDC a două numere naturale.

Exemplul 1
Algoritmul lui Nicomachus Algoritmul lui Euclid
#include <iostream> #include <iostream>
using namespace std; using namespace std;
int main() int main()
{ {
int n, m; int n, m;
cin >> n >> m; cin >> n >> m;
while (n != m) while (m != 0)
if (n > m) {
n = n - m; int r = n % m;
else n = m;
m = m - n; m = r;
cout << n << endl; }
return 0; cout << n << endl;
} return 0;
}

Exemplul 2
Programul de mai jos implementează un algoritm pentru descompunerea unui număr natural arbitrar în factori primi.
Pentru reducerea timpului de executare, mai întâi se analizează cazul separat al divizibilității la doi (primul ciclu while),
apoi în continuare se testează numai factorii impari.
Program
#include<stdio.h>
#include <iostream>
using namespace std;
int main()
{
int n;
cout<<"dati un numar natural n=";
cin>>n;
cout<<n<<"=1";
while (n%2==0)
{
cout<<"*2";
n=n/2;
}
int i=3;
while (i<=n)
{
if (n%i==0)
{
cout<<"*"<<i;
n=n/i;
}
else
i=i+2;
}
return 0;
}
Rezultatul programului
dati un numar natural n=275
275=1*5*5*11
Probleme propuse pentru rezolvare

a⋅b
1. Determinați cel mai mic multiplu comun ( CMMMC) după formula CMMMC (a ,b)= .
CMMDC (a , b)
2. Se dau două numere naturale nenule a și b. Afișați divizorii comuni ai celor două numere. Observație: Divizorii comuni
pe care îi pot avea în comun a și b sunt divizorii celui mai mare divizor comun al celor două numere.
3. Se dau două fracții de forma a/b și c/d. Afișați suma celor două fracții sub formă ireductibilă. Observație: pentru a
aduce o fracție la forma ireductibilă, se simplifică numărătorul și numitorul fracției prin valoarea CMMDC(numărător,
numitor).
4. Se dau două fracții de forma a/b și c/d. Afișați diferența celor două fracții sub formă ireductibilă.
5. Se dau două fracții de forma a/b și c/d. Afișați produsul celor două fracții sub formă ireductibilă.
6. Aflați cel mai mare divizor comun a trei numere naturale a, b, c, conform algoritmului lui Euclid și formulei:
CMMDC(a,b,c)=CMMDC(CMMDC(a,b),c).
7. De la tastatură se citesc m numere naturale nenule n1,n2,..., nm (m2). Calculați CMMDC(n1,n2,..., nm) folosind
relația: CMMDC(n1,n2,..., nm) = CMMDC(CMMDC(n1,n2,..., nm-1),nm) și algoritmul lui Euclid. De exemplu, pentru
m=4, și numerele 18, 54, 24, 42, răspunsul este 6.
8. De la tastatură se citesc m numere naturale nenule n1,n2,..., nm. Calculați CMMMC(n1,n2,..., nm). De exemplu,
pentru m=4, și numerele 18, 54, 24, 42, răspunsul este 1512.
9. Să calculeze cel mai mic multiplu comun (CMMMC) al unui șir de n numere naturale nenule citite de la tastatură.
10. Se dă un număr natural nenul n2∙109. Afișați câte perechi de numere reciproc prime între ele există printre primele
n numere naturale.
11. Se citesc numere naturale până la întâlnirea lui 0. Afișați câte perechi de numere citite succesiv au CMMDC egal cu un k
dat (0 nu se calculează!).
12. Se citesc numere naturale până la întâlnirea lui 0. Afișați câte dintre numerele citite sunt prime cu suma cifrelor lor.
13. Aflați suma a două fracții ordinare. Adică, date numere naturale a, b, c, d. Trebuie să găsiți două numere prime
reciproc p și q, astfel încât a/b+c/d=p/q. Explicație: Suma a două fracții. Numărătorul este a*d+b*c. Numitorul este
b*d. Apoi, conform algoritmului lui Euclid, găsim CMMDC-ul numărătorului și numitorului și împărțim numărătorul și
numitorul la acest număr.
14. Se dau n perechi de numere naturale, nenule, fiecare reprezentând câte o fracție. Calculați suma celor n fracții,
aducând rezultatul la forma ireductibilă. De exemplu, pentru n=4 și perechile 1 3, 5 6, 1 2, 4 2, se va afișa 11 3.
15. Determinați toate fracțiile ireductibile obișnuite, ale căror numitori nu depășesc valoarea 5 (fracția este dată sub
formă de două numere naturale – numărător și numitor). Răspuns: 1/2 1/3 2/3 1/4 3/4 1/5 2/5 3/5 4/5.
16. Determinați toate fracțiile ireductibile obișnuite, ale căror numitori nu depășesc valoarea 7 (fracția este dată sub
formă de două numere naturale – numărător și numitor). Răspuns: 1/2 1/3 2/3 1/4 3/4 1/5 2/5 3/5 4/5 1/6
5/6 1/7 2/7 3/7 4/7 5/7 6/7 .
17. Fie date trei numere naturale A, B, C. Determinați și afișați toate numerele reciproc prime cu C din intervalul [A,B].
18. Se dau n perechi de numere naturale, nenule, fiecare reprezentând câte o fracție. Calculați suma celor n fracții,
aducând rezultatul la forma ireductibilă. De exemplu, pentru n=4 și perechile 1 3, 5 6, 1 2, 4 2, se va afișa 11 3.
19. De la tastatură se citește un număr natural n și apoi n numere naturale nenule separate printr-un spațiu. Determinați
cea mai mică fracție care poate fi scrisă cu numărătorul și numitorul dintre cele n numere citite. De exemplu, pentru
n=5 și numerele 6 10 3 2 5, se va afișa 5 (cea mai mică fracție care se poate scrie cu numerele din șir este 2/10.
Prin simplificare se obține fracția ireductibilă 1/5).
20. Să calculeze cel mai mic multiplu comun (CMMMC) al unui șir de n numere naturale nenule citite de la tastatură.
21. Se dă un număr natural nenul n2∙109. Afișați câte perechi de numere reciproc prime între ele există printre primele
n numere naturale.

S-ar putea să vă placă și