最小公倍数 最大公约数
窗体设计如图:
Label 4个 Edti 4个 button 1个、
代码:
1 unit Unit2; 2 3 interface 4 5 uses 6 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; 8 9 type 10 TForm2 = class(TForm) 11 Label1: TLabel; 12 Label2: TLabel; 13 Edit1: TEdit; 14 Edit2: TEdit; 15 Edit3: TEdit; 16 Label3: TLabel; 17 Button1: TButton; 18 Label4: TLabel; 19 Edit4: TEdit; 20 procedure Button1Click(Sender: TObject); 21 private 22 { Private declarations } 23 public 24 { Public declarations } 25 end; 26 27 var 28 Form2: TForm2; 29 30 implementation 31 32 {$R *.dfm} 33 34 procedure TForm2.Button1Click(Sender: TObject); 35 var 36 int1,int2,mod1,temp:Integer; 37 begin 38 int1 := StrToInt(Edit1.Text); //把第一个整数赋值给int1. 39 int2 := StrToInt(Edit2.Text); //把第二个整数赋值给int2. 40 41 if int1<int2 then //如果第一个数比第二个数小则调换 42 begin 43 temp := int1; 44 int1 := int2; 45 int2 := temp; 46 end; 47 mod1 := int2; 48 while mod1>0 do //最大公约数的计算假如 x > y, x mod y 取余数后,y 付给 x、余数付给 y,然后重复运算, 最后非 0 的余数就是最大公约数 49 begin 50 mod1 := int1 mod int2; 51 int1 := int2; 52 if mod1>0 then 53 int2 := mod1; 54 end; 55 Edit3.Text := IntToStr(int2); //结果输出 56 Edit4.Text := IntToStr((StrToInt(Edit1.Text)*StrToInt(Edit2.Text)) div int2); //用两个数的乘积除以最大公约数 57 end; 58 59 end.