//书本第四章第01题,分别求出两个整数的最大公约数和最小公倍数,用主函数调用两个函数,并输出结果,两个整数由键盘输入。
/*
最小公倍数_--解法一
借助最大公约数求最小公倍数
步骤:
一、利用辗除法或其它方法求得最大公约数;
二、 最小公倍数等于两数之积除以最大公约数。
最小公倍数--解法二
质因数分解
举例:12和27的最小公倍数 12=2×2×3 27=3×3×3
必须用里面数字中的最大次方者,像本题有3和3的立方,
所以必须使用3的立方(也就是3*3*3),不能使用3
所以: 2×2×3×3×3=4×27=108
两数的最小公倍数是108
最大公约数原理
如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。
几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。
例: 在2、4、6中,2就是2,4,6的最大公约数。
早在公元前300年左右,欧几里得就在他的著作《几何原本》中给出了高效的解法——辗转相除法。
辗转相除法使用到的原理很聪明也很简单,假设用f(x, y)表示x,y的最大公约数,
取k = x/y,b = x%y,则x = ky + b,
如果一个数能够同时整除x和y,则必能同时整除b和y;
而能够同时整除b和y的数也必能同时整除x和y,
即x和y的公约数与b和y的公约数是相同的,其最大公约数也是相同的,
则有f(x, y)= f(y, y % x)(y > 0),
如此便可把原问题转化为求两个更小数的最大公约数,
直到其中一个数为0,剩下的另外一个数就是两者最大的公约数。
例如,12和30的公约数有:1、2、3、6,其中6就是12和30的最大公约数。
*/
//第四章第01题,分别求出两个整数的最大公约数和最小公倍数,用主函数调用两个函数,并输出结果,两个整数由键盘输入。
#include<iostream>
using namespace std;
//辗转相除法
inline int gongyue(int x,int y)
{
int t;
if(x>y)t=y,y=x,x=t; //将较大数赋给y,xy顺序调换
if(x!=0)gongyue(x,t=y%x);//辗转相除法及递归调用,[公约数(较小数,余数)]
else return y;
}
int main()
{
//输入整数
cout<<"请输入两个整数并用空格间开:";
int a,b;
cin>>a>>b;cout<<endl;
//运算
int i=gongyue(a,b);
cout<<"它们的最大公约数是:"<<i<<endl;
i=a*b/i;
cout<<"它们的最小公倍数是:"<<i<<endl;
return 0;
}
分享到:
相关推荐
根据提供的文件信息,本文将详细解释如何使用C语言来实现最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)的计算。 ### 最大公约数(GCD) #### 概念 最大公约数是指两个...
用LabVIEW求最大公约数和最小公倍数。可以自行选择数据。
基于FPGA开发板的两位数求最大公约数和最小公倍数的设计,该设计中利用辗转相减法求得公约数与公倍数,且两个数的数值可通过按键修改,设计灵活可靠。该设计基于vivado开发,并带有testbench文件,方便仿真学习。
- `private void button1_Click(object sender, EventArgs e)` 方法是主要的计算逻辑部分,它实现了求两个整数的最大公约数和最小公倍数的功能。 - 首先将用户输入的两个整数转换为`int`类型。 - 如果输入的第一个...
在IT领域,尤其是在编程与算法设计中,求解两个数的最大公...总之,在实际的IT项目开发中,理解并掌握最大公约数和最小公倍数的求解方法不仅能够提升算法的优化能力,还能在处理数据处理、信息安全等领域发挥重要作用。
在编程领域,尤其是在数学计算和算法设计中,最小公倍数(LCM)和最大公约数(GCD)是两个非常基础且重要的概念。这两个概念主要用于处理整数之间的关系,帮助我们理解它们之间的共性和差异。 **最大公约数...
尤其是在编程语言的学习与应用中,C#作为一种广泛使用的面向对象的高级编程语言,提供了丰富的功能来处理各种数学运算,包括求解两个或多个整数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least ...
2.编写两个函数,分别求两个整数的最大公约数和最小公倍数
本主题主要关注求最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)的三种常见算法,通过流程图的方式进行阐述。下面我们将详细探讨这五种算法及其流程。 1. 辗转相除法...
python求最大公约数和最小公倍数 #辗转相除法 def gcd(a,b): #最大公约数函数,且最小公倍数 = 两个数相乘 / 最大公约数 if b == 0: return a else: return gcd(b,a%b) print("请输入两个数:") j,k = input()....
在计算机编程领域,最小公倍数(Least Common Multiple, LCM)和最大公约数(Greatest Common Divisor, GCD)是两个基本的数学概念,它们在算法设计和数据分析中经常被用到。C语言是一种广泛应用的编程语言,用于...
在C#语言中,我们可以使用多种方法来计算两个自然数的最大公约数和最小公倍数。下面将详细介绍这两种计算方法。 ### 最大公约数 (GCD) #### 辗转相除法(欧几里得算法) 欧几里得算法是求最大公约数的经典方法,...
”可以看出,该文件旨在通过编程实现这一数学功能,帮助读者理解并掌握最大公约数和最小公倍数的计算方法。 ### 最大公约数(GCD) 最大公约数是指两个或多个整数共有的约数中最大的一个。例如,12和18的公约数有1、...
求两个整数的最大公约数和最小公倍数的C语言方法
在VB语言中,求最大公约数和最小公倍数是常见的数学运算问题,本文将详细介绍VB语言中求最大公约数和最小公倍数的方法。 一、求最大公约数 在VB语言中,求最大公约数可以使用欧几里德算法,该算法的基本思想是:两...
python 输入两个正整数计算最大公约数和最小公倍数 示例
在Java编程语言中,求两个正整数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)是常见的算法问题,这对于理解和掌握基本的数学运算以及编程技巧至关重要。本文将详细介绍...
c++求最大公因数和最小公倍数,利用最大公因数法求最小公倍数。
JAVA实现求最大公约数和最小公倍数 根据欧几里得定律,最大公约数的递归算法