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.