求最大公约数
来源:互联网 发布:3d打印软件 编辑:程序博客网 时间:2024/05/17 03:26
先来看一下最大公约数的定义:最大公约数也成最大公因子,即两个或多个整数共有约数的最大的那个。
这里我们用到辗转相除法:
辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。
当两个数都较大时,采用辗转相除法比较方便.
其方法是:
以大数除以小数,如果能整除,那么小数就是所求的最大公约数.否则再用小数除以余数;
再用这新除法的余数去除刚才的余数.依此类推,直到一个除法能够整除,即余数为0
这时作为除数的数就是所求的最大公约数。
了解方法后,便不难写出代码:
#include<iostream>
#include<cstdio>
using namespace std;
int n, m;int gcd(int n, int m) { //求最大公约数
if (m > n) { //将n定义为最大的
int tmp = m;
m = n;
n = tmp;
}
if (n%m == 0) //如果能整除,则小的那个数即为最大公约数
return m;
else //否则,求余后继续调用函数,知道符合为止
return gcd(m, n%m);
}
int main() {
while (scanf("%d%d", &n, &m) != EOF) {
printf("%d\n", gcd(n, m));
}
return 0;
}
0 0
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- c# 如何实现子窗口关闭父窗口也关闭
- 1422 - Halloween Costumes(区间DP)
- 程序员笔试面试题总结(不定时更新)
- 简单的2个实例,助你理解Qt的自定义Signal & Slot机制
- iwebshop功能添加——邮箱邀请注册增加积分
- 求最大公约数
- CRC校验算法及C++程序实现
- 程序员的感想
- FreeCMS视频教程 栏目管理
- nyoj n-1位数
- CHOOSING A PLATFORM FOR BACKTESTING AND AUTOMATED EXECUTION
- 作为码农,我们为什么要写作
- Eclipse常用快捷键
- java 同步调用第三方sdk提供异步监听方法