时间:2021-05-20
C++求最大公约数的四种方法思路,供大家参考,具体内容如下
将最近学的求最大公约数的四种方法总结如下:
第一种:穷举法之一
解释:拿其中一个数出来,用一个临时变量(tem)保存,每次都把那两个数除以这个临时变量。如果能除断,直接返回tem;如果不能除断,tem- -,直到都能除断,再返回tem。tem就是它们的最大公约数。
#include <iostream>using namespace std;int CommFactor1(int m, int n); //函数的声明int main(){ int a, b; cin >> a >> b; cout << "这两个数的最大公约数为:" << CommFactor1(a,b)<< endl; return 0;}int CommFactor1(int m,int n){ int tem; for (tem = m;; tem--) { if (m % tem == 0 && n % tem == 0) { break; } } return tem;}第二种:穷举法之二
解释:求出两数的所有公因子,再把公因子累乘得到最大公约数。
#include <iostream>using namespace std;int CommFactor2(int m, int n); //函数的声明int main(){ int a, b; cin >> a >> b; cout << "这两个数的最大公约数为:" << CommFactor2(a,b)<< endl; return 0;}int CommFactor2(int m,int n){ int i; int factor = 1; for (i=2;i<=m&&i<<n;i++) { while(m % i == 0 && n % i == 0) //这里不能用if语句,因为可能会有重复的公因子 { factor = factor * i; m = m / i; n = n / i; } } return factor;}第三种:辗转相除法
解释:将两个数辗转相除直到余数为0。(具体思想请问度娘)
#include <iostream>using namespace std;int CommFactor3(int m, int n); //函数的声明int main(){ int a, b; cin >> a >> b; cout << "这两个数的最大公约数为:" << CommFactor2(a,b)<< endl; return 0;}int CommFactor3(int m,int n){ int z = n; while (m % n != 0) { z = m % n; m = n; n = z; } return z;}第四种:辗转相减法
解释:将两个数辗转相减直到两数相等。(具体思想请问度娘)
#include <iostream>using namespace std;int CommFactor4(int m, int n); //函数的声明int main(){ int a, b; cin >> a >> b; cout << "这两个数的最大公约数为:" << CommFactor4(a,b)<< endl; return 0;}int CommFactor4(int m,int n){ while (m != n) { if (m > n) { m = m - n; } else { n = n - m; } } return m;}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
C++实现求最大公约数和最小公倍数最大公约数辗转相除法:intmaxDivisor(inta,intb){intc=b;while(a%b!=0){c=a%b;
C++实现多数的最大公约数的实例题目:求最大公约数输入一组正整数(数量小于20),输出其最大公约数。输入:1213344111111输出:11基本思路:从第一个
python怎么求最大公约数和最小公倍数一、求最大公约数用辗转相除法求最大公约数的算法如下:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b
本文实例讲述了C++求四个正整数最大公约数的方法。分享给大家供大家参考,具体如下:?12345678910111213141516171819202122232
本文实例讲述了PHP编程求最大公约数与最小公倍数的方法。分享给大家供大家参考,具体如下://求最大公约数functionmax_divisor($a,$b){$