Wednesday, 06 February 2019 17:27

C.M.MD.C. A 2 NUMERE

Written by
Rate this item
(0 votes)
Program pentru aflarea celui mai mare divizor comun a două numere.
 
Limbajul Pascal:
program cmmdc;
uses Crt;
var a,b,d,k1,k2:integer;
begin
ClrScr;
write('Dati 2 numere naturale,nenule:');
{*Pasul 1:Se citesc cele 2 numere introduse de la tastatura}
read(a,b);writeln;
{*Pasul 2: Verificam daca unul din numere este divizor al celuilalt}
if (a mod b=0) or (b mod a=0) then
                                begin
                                        writeln('cmmdc al numerelor ',a,' si ',b,' este: ');
                                        if a<b then writeln(a) else writeln(b);
                                end
{*Pasul 3:Daca Pasul 2 nu se verifica,calculam cmmdc al numerelor.Deoarece cmmdc este mai mic sau egal cu jumatatea numarului mai mic dintre
a si b, calculam cmmdc in cazurile a>b sau b>a. In ambele cazuri se afiseaza un mesaj cu divizorul gasit, atat timp cat acesta este diferit de 1}
                              else
     begin
        if a<b then
                   begin
                   d:=(a div 2);if d<>1 then
                   repeat
                   k1:=a mod d;k2:=b mod d;
                   if (k1=0) and (k2=0) then writeln('cmmdc al numerelor ',a,' si ',b,' este ',d)
                                                else d:=d-1;
                   until ((k1=0) and (k2=0)) or (d<=1);
                   end
               else
                   begin
                   d:=(b div 2);if d<>1 then
                   repeat
                   k1:=a mod d;k2:=b mod d;
                   if (k1=0) and (k2=0) then writeln('cmmdc al numerelor ',a,' si ',b,' este ',d)
                                                else d:=d-1;
                   until ((k1=0) and (k2=0)) or (d<=1);
                   end;
{*Pasul 4:Se afiseaza mesajul in cazul in care numerele sunt prime intre ele}
if d=1 then writeln('cmmdc al numerelor ',a,' si ',b,' este 1.Numerele ',a,' si ',b,' sunt prime intre ele!');
     end;
end.
 
OBSERVAȚIE: PROGRAMUL POATE FI TRANSCRIS UȘOR ÎN C SAU C++ ÎNLOCUIND CUVINTELE CHEIE ȘI PUNCTUAȚIA DIN PASCAL CU CELE DIN C SAU C++.
 
CHESTER the Tester

CHESTER este administratorul și realizatorul acestui site.

This email address is being protected from spambots. You need JavaScript enabled to view it.
More in this category: NUMERE CONSECUTIVE »

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.

Top