最大公约数和最小公倍数
2017-11-05 17:34
281 查看
/*
原理:公约数指的是能够整除两个数字的一个数字。那么公约数一定能被这两个数字的差整除。既然能被差整除,那就能被这个差和最小的那个数字整除,就这么反复的应用。
因为辗转法,得到最后的余数一定为0,即有一个数会整除他们两个数
而最先得到余数0的约数就是他们的最大公约数了
*/
#include"stdio.h"
int main()
{
int m,n,t,h,a,b,q;
printf("输入m,n的值:");
scanf("%d %d",&m,&n);
a=m; //暂存两个数,将这两个数的原始值保存下来
b=n;
if (n>m) //判断这两个数的大小,将大的那个数放在前面
{
t=m;
m=n;
n=t; //交换值
}
while (m%n!=0)
// 重复执行while循环,直到余数为0
{
h=n;
n=m%n;
//找到余数为0之前那个最小的余数
m=n;
}
a=a/n;
b=b/n;
q=a*b*n;
printf("两数最大公约数为 %d,最小公倍数为 %d\n",n,q);
}
原理:公约数指的是能够整除两个数字的一个数字。那么公约数一定能被这两个数字的差整除。既然能被差整除,那就能被这个差和最小的那个数字整除,就这么反复的应用。
因为辗转法,得到最后的余数一定为0,即有一个数会整除他们两个数
而最先得到余数0的约数就是他们的最大公约数了
*/
#include"stdio.h"
int main()
{
int m,n,t,h,a,b,q;
printf("输入m,n的值:");
scanf("%d %d",&m,&n);
a=m; //暂存两个数,将这两个数的原始值保存下来
b=n;
if (n>m) //判断这两个数的大小,将大的那个数放在前面
{
t=m;
m=n;
n=t; //交换值
}
while (m%n!=0)
// 重复执行while循环,直到余数为0
{
h=n;
n=m%n;
//找到余数为0之前那个最小的余数
m=n;
}
a=a/n;
b=b/n;
q=a*b*n;
printf("两数最大公约数为 %d,最小公倍数为 %d\n",n,q);
}
相关文章推荐
- 求最大公约数和最小公倍数---调用函数
- 最大公约数和最小公倍数
- 1012 最大公约数和最小公倍数问题
- 求最大公约数和最小公倍数(辗转相除法)
- WV.41-两个整数的最大公约数和最小公倍数
- 求最大公约数和最小公倍数(2013-06-11)
- 洛谷1029 最大公约数和最小公倍数问题 解题报告
- 求最大公约数和最小公倍数
- 【杭电-oj】-1108-最小公倍数(先辗转相除找到最大公约数)
- 欧几里得辗转相除求最大公约数最小公倍数
- 求若干整数的最大公约数和最小公倍数
- Javascript基础_07基础应用:求线性函数值、求奇数偶数和、求水仙花数、利用辗转相除法求最大公约数和最小公倍数、求某一年的日期为第几天
- (c++)写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
- P1029 最大公约数和最小公倍数问题
- 三种方法求最大公约数及求n个数的最小公倍数
- C语言解决“两个数的最大公约数和最小公倍数问题”
- 求最大公约数和最小公倍数
- 最大公约数和最小公倍数问题--分解质因子
- 编程求两个数的最大公约数和最小公倍数
- 求最大公约数和最小公倍数