## 最大公约数与最小公倍数 转

涂孟超

``````unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
end;

var
Form1: TForm1;

implementation

{\$R *.dfm}

{求最大公约数
算法: 假如 x > y, x mod y 取余数后,
y 付给 x、余数付给 y,
然后重复运算, 最后非 0 的余数就是最大公约数
}
function zdgys(x,y: Cardinal): Cardinal;
var
n: Integer;
begin
n := y;
if x < y then
begin
y := x;
x := n;
end;

while n > 0 do
begin
n := x mod y;
x := y;
if n > 0 then y := n;
end;
Result := y;
end;

{求最小公倍数
算法: x * y div 它们的最大公约数
}
function zxgbs(x,y: Cardinal): Cardinal;
var
m,n: Cardinal;
begin
m := x * y;
n := y;
if x < y then
begin
y := x;
x := n;
end;

while n > 0 do
begin
n := x mod y;
x := y;
if n > 0 then y := n;
end;

Result := m div y;
end;

{测试}
procedure TForm1.Button1Click(Sender: TObject);
const
str = '%0:d 与 %1:d 的最大公约数是 %2:d'#13#10'%0:d 与 %1:d 的最小公倍数是 %3:d';
var
x,y,a,b: Cardinal;
begin
x := StrToIntDef(Edit1.Text, 1);
y := StrToIntDef(Edit2.Text, 1);
a := zdgys(x, y);
b := zxgbs(x, y);
ShowMessageFmt(str, [x,y,a,b]);
end;

end.

``````

``````object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 160
ClientWidth = 268
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 176
Top = 14
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
OnClick = Button1Click
end
object Edit1: TEdit
Left = 17
Top = 16
Width = 64
Height = 21
TabOrder = 1
Text = 'Edit1'
end
object Edit2: TEdit
Left = 98
Top = 16
Width = 63
Height = 21
TabOrder = 2
Text = 'Edit2'
end
end

``````

### 涂孟超

ranjiewen
2016/09/20
0
0
C语言 -- 递归求最大杏彩源码下载公约数和最小公倍数

iuiu230
07/04
0
0
c语言求最小公倍数，最大公约数

<1> 用辗转相除法求最大公约数 算法描述: m对n求余为a, 若a不等于0 则 m <- n, n <- a, 继续求余 否则 n 为最大公约数 <2> 最小公倍数 = 两个数的积 / 最大公约数 本文转自NewPanderKing51CT...

2017/11/14
0
0

[本文出自天外归云的博客园] 本文是对金阳光测试算法专题中一些小算法的精选汇总，利于思考与收获。 注意：原版是用java解，以下题目部分使用python解（python3），对于题目中描述不清楚的地...

2017/06/13
0
0

ZscDst
2017/07/19
0
0

windows10小鹤双拼注册表

《安全第一》直接发文本内容，自己建文本，改文本后缀reg。 使用方法： 1.复制下示文本内容，打开你的文本编辑器（#记事本notepad或其他++），粘贴文本内容并保存在任意位置（不影响使用） ...

14分钟前
1
0

17分钟前
1
0
Java线程池ThreadPoolExecutor

18分钟前
2
0
Mybatis 实现SQL拦截并在控制台打印SQL和参数

21分钟前
2
0
Log4j2 配置

config： <?xml version="1.0" encoding="UTF-8"?><!-- http://logging.apache.org/log4j/2.x/manual/appenders.html --><!-- status 负责打印日记系统的 WARN 级别以及以上的日记 --><C......

Credo-Zhao
22分钟前
1
0