Sa se determine c.m.m.d.c. a doua numere naturale
Varianta 1:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _12 // Sa se determine c.m.m.d.c. a doua numere naturale. (varianta 1) { class Program { static void Main() { int nr1, nr2, n, m; Console.Write("Introduceti primul numar: "); nr1 = int.Parse(Console.ReadLine()); Console.Write("Introduceti al doilea numar: "); nr2 = int.Parse(Console.ReadLine()); n = nr1; m = nr2; while (nr1 != nr2) if (nr1 > nr2) nr1 -=nr2; else nr2 -= nr1; Console.WriteLine("c.m.m.d.c. ({0},{1}) = {2}", n,m,nr1); Console.ReadLine(); } } }
Varianta 2:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _12 // Sa se determine c.m.m.d.c. a doua numere naturale. (varianta 2) { class Program { static void Main() { int nr1, nr2, temp, r, n, m; Console.Write("Introduceti primul numar: "); nr1 = int.Parse(Console.ReadLine()); Console.Write("Introduceti al doilea numar: "); nr2 = int.Parse(Console.ReadLine()); n = nr1; m = nr2; if (nr1 < nr2) { temp = nr1; nr1 = nr2; nr1 = temp; } do { r = nr1 % nr2; nr1 = nr2; nr2 = r; } while (r != 0); Console.WriteLine("C.m.m.d.c. ({0}, {1}) = {2}", n, m, nr1); Console.ReadLine(); } } }
Analiza Programului
Aceasta este o metoda foarte simplu de aplicat si de retinut in aflarea c.m.m.d.c. a doua numere, insa probabil necesita mai multe calcule decat alti algoritmi.
Ideea acestui algoritm este urmatoarea: atata timp cat cele doua numere date sunt diferite, din cel mai mare se scade cel mai mic, iar prin acest procedeu la un moment dat cele doua numere vor deveni egale. Acea valoare finala pe care o au ambele numere reprezintfi c.m.m.d.c. al lor.
Avand in vedere faptul ca ambele numere vor fi alterate in acest calcul, pentru a nu pierde valoarea lor initials, inainte de instructiunea while se poate face cate o copie a lor cu care sa se lucreze mai departe.