求兩個數最大公因數和最小公倍數 PASCAL語言

2023-01-17 02:20:11 字數 1162 閱讀 2197

1樓:匿名使用者

你好!!!程式如下:program ex1;

var n,a,b,i,j,gongyueshu,gongbeishu:longint;

beginreadln(a,b);

if (a<=0)or(b<=0) then exit;

if a>=b then

beginn:=a;

j:=b;endelse

beginj:=a;

n:=b;end;

for i:=n downto 1 do

beginif (a mod i=0)and(b mod i=0) then

begingongyueshu:=i;

break;

end;end;

if gongyueshu=1 then gongbeishu:=a*b;

if gongyueshu=j then gongbeishu:=n;

if (gongyueshu<>1)and(gongyueshu<>j) then gongbeishu:=j*gongyueshu;

writeln('gong yue shu:='gongyueshu,' gong bei shu:='gongbeishu);

readln;

end.我來說明下。

公約數演算法:

從兩數中最大數開始直到1 最大數為n (因為最大公約數不超過最大數!)

如果a和b同時整除i 就賦值 gongyueshu:=i; (整除i 因為是for迴圈 i會變。

而n是最大數 不變 所以是i)

公倍數演算法:

已經算了公約數。

考慮了3種情況:

1. a=b 如 7 7

公約數是等於公倍數 所以gongbeishu:=gongyueshu;

2. a與b公約數為1 如 3 7

所以公倍數等於兩數相乘 gongbeishu:=a*b;

3. 公約數在》1和所以 公倍數等於公約數乘最小數 即j gongbeishu:=j;

最後輸出。敲下回車退出。

教你一種方法。

先複製我寫的程式 開啟free pascal

點new 選單中點edit 再點paste from windows

貼上進去。程式沒錯。

希望能夠幫助你!!

兩個數的最小公倍數是144,最大公因數是12,已知其中的

兩數乘積 最小公倍數 最大公因數 另一個是 144 12 36 48 公式 兩數的乘積 最大公約數 最小的公倍數 另一數 12 72 36 24 已知兩個數的最大公因數是12,最小公倍數是144,其中一個數是36,求另外一個數 144 12 1728 1728 36 48 就可以了 我認為是二,還有...

已知兩個數的最大公因數是4,最小公倍數是24,那麼這兩個數和

已知兩個數的最大公因數是4,最小公倍數是24,那麼這兩個數和的最大值是 28 已知c地為a,b兩地的中點。上午8點甲從a出發向b行進,同時,乙和丙分別從b和c出發向a行進。甲和丙相遇時乙恰好走到c地,上午10點當乙走到a地時,甲距離b地還有20千米,上午11點丙到達a地。那麼a和b兩地距離是 60 ...

80和49的最大公因數最小公倍數

你好!80 2 2 2 2 5,49 7 7,它們的最大公因數是1,最小公倍數是2 2 2 2 5 7 7 3920。經濟數學團隊幫你解答,請及時採納。謝謝!分解質因數求最大公因數和最小公倍數 12和36 最大公因數是12,最小公倍數是36 因為36是12的倍數。最大公因數是 將12和36中都包含有...