Cho 2 số nguyên dương M,N (0<=M,N). Hãy viết chương trình đếm các ước của M và N? (VD 5 và 3 chỉ có 1 ước là 1)

2 câu trả lời

var     i,m,n,k,d:longint;

function uc(a,b:longint):longint;

begin

           while a<>b do

           if a>b then a:=a-b

           else b:=b-a;

           uc:=a;

end;

begin

       write('nhap hai so m,n: '); readln(m,n);

       k:=uc(m,n);

        d:=0;

       for i:=1 to k do

       if k mod i=0 then d:=d+1;

       write('so cac uoc cua ',m,' va ',' n ',' la: ',d);

       readln;

end.

       

 

var M, N, k, dem : integer;

begin

clrscr;

write('Nhap hai so M, N : '); readln(M, N);

if (M >= 0) and (N >= 0) then

begin

dem := 0;

if M >= N then

for k := 1 to N do

if (M mod k = 0) and (N mod k = 0) then dem := dem + 1;

if M <= N then

for k := 1 to M do

if (M mod k = 0) and (N mod k = 0) then dem := dem + 1;

end;

write('M va N co ', dem ,' uoc');

readln

end.