文档章节

最大公约数与最小公倍数

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 371
阅读 8
收藏 0
点赞 0
评论 0

本例效果图:



代码文件:
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

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2009/03/10/1407593.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
最大公倍数

华为机试题,以前做过,复习了一点思路。 //题目描述////正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。////输入描述 ://输入两...

ranjiewen ⋅ 2016/09/20 ⋅ 0

c语言求最小公倍数,最大公约数

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

技术小甜 ⋅ 2017/11/14 ⋅ 0

金阳光测试算法专题——精选小算法汇总

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

天外归云 ⋅ 2017/06/13 ⋅ 0

求最大公约数和最小公倍数

辗转相除(欧几里德算法(m>n)) 1、m被n除得到余数r(0≤r ≤n) r=m%n 2、若r=0,则算法结束,n为最大公约数,否则做3 3、m=n , n=r , 回到1 ----------...

Ne0o0 ⋅ 2013/06/22 ⋅ 0

最大公约数与最小公倍数(gcd,lcm)

先来说求最大公约数的方法 1.欧几里得算法(辗转相除法) int gcd(int a,int b){return b==0?a:gcd(b,a%b);}设两数为a、b(a>b),用gcd(a,b)表示a,b的最大公约数,r=a (mod b) 为a除以b的余数...

ZscDst ⋅ 2017/07/19 ⋅ 0

mba数学-太奇2017基础-杨洁

实数:有理数和无理数 无理数:无限不循环的小数 有理数:q/p p和q为整数 p不为0 整数(正整数、0、负整数) ->正整数 质数(只能被1和本身整除的正整数)和合数(除了1和本身以外还有其他整数整除...

datacube ⋅ 2016/07/31 ⋅ 0

逃离学校-挑战Python刷题

描述如题:求解100以内的所有素数 最古老的方法: result = []for i in range(2,101):j = 2flag = Truewhile j

googler_offer ⋅ 01/05 ⋅ 0

求两个数的最大公约数【ACM基础题】

/* 求两个数的最大公约数 xtfggef 2012/5/16 / include<stdio.h> int gcd(int,int);void main(){int a = 5;int b = 8;int c = gcd(a,b);printf("%dn",c);}int gcd(int a, int b){while(a!=b......

张二青 ⋅ 2012/05/16 ⋅ 10

python 最大公约数 最小公倍数

#大公约数算法 def gcd(num1,num2): if num2 == 0: return num1 else: return gcd(num2,num1%num2) #最小公倍数算法 def lcm(num1,num2): tmp = gcd(num1,num2) return num1*num2/tmp......

郭朝楠 ⋅ 2011/09/04 ⋅ 0

JavaScript30秒, 从入门到放弃

有意思 最近很火的上的库,特别有意思,代码也很优雅。 能学es6 自己翻译,能学英语 代码很美,很优雅,美即正义 函数式表达,享受 arrayGcd Calculates the greatest common denominator (g...

supermao ⋅ 2017/12/25 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部