C++求最大公约数的四种方法思路,供大家参考,具体内容如下

将最近学的求最大公约数的四种方法总结如下:

第一种:穷举法之一

解释:拿其中一个数出来,用一个临时变量(tem)保存,每次都把那两个数除以这个临时变量。如果能除断,直接返回tem;如果不能除断,tem- -,直到都能除断,再返回tem。tem就是它们的最大公约数。

#include

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

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<

{

while(m % i == 0 && n % i == 0) //这里不能用if语句,因为可能会有重复的公因子

{

factor = factor * i;

m = m / i;

n = n / i;

}

}

return factor;

}

第三种:辗转相除法

解释:将两个数辗转相除直到余数为0。(具体思想请问度娘)

#include

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

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;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python求两个数的最大公约数穷举法_C++求最大公约数四种方法解析相关推荐

  1. python求两个数的最大公约数穷举法_求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法...

    #coding:utf-8 importtime#辗转相除法: defcommonDivisor1(num1,num2):if num1 temp=num1 num1=num2 num2=tempif ...

  2. python求两个数的最大公约数穷举法_五十九、如何求N个数的最大公约数和最小公倍数...

    「@Author:Runsen」 ❝ 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化.「---- Runsen」 ❞ 上次介绍了短除法的因式分解,下面正式进入求解:「两个及 ...

  3. java 穷举法求水仙花数_常用算法-穷举法

    穷举法又称为枚举法,它是在计算机算法设计中用得最多的一种编程思想.它的实现方式是:在已知答案范围的情况下,依次地枚举该范围内所有的取值,并对每个取值进行考查,确定是否满足条件.经过循环遍历之后,筛选出 ...

  4. java 穷举法_C++基本算法思想之穷举法

    穷举算法(Exhaustive Attack method)是最简单的一种算法,其依赖于计算机的强大计算能力来穷尽每一种可能性,从而达到求解问题的目的.穷举算法效率不高,但是适应于一些没有规律可循的场 ...

  5. c语言穷举法等式求缺位数,四年级下册数学奥数试题-培优拓展训练--第13讲:数字谜题(教师版)...

    第十三讲数字谜题 ------------------------------------------------------------------------------------------- ...

  6. 通过Python的列表、while循环,穷举法解决农夫过河问题

    题目:一农夫带着一头狼,一只羊和一担草过河,小船只能一次装载农夫和一样货物,狼会吃羊,羊会吃草,只有农夫在时才安全.现欲让所有物品包括农夫都安全过道河对岸,使用程序实现求解. 学习完毕<Pyth ...

  7. Python【算法设计与分析】穷举法

    # -*- ecoding: utf-8 -*- # @ModuleName: s50 # @Function: 现在36块石板,有36个人,男生每趟搬4块,女生每趟搬3块,2个小朋友能搬1块 # @ ...

  8. 【算法】最直接的算法——穷举法详解

    第三章 穷举法 一.基本概念 穷举法又称为枚举法或者蛮力法,是一种简单直接解决问题的方法,常常是基于问题的直接描述去编写程序,比如说求n的阶乘,那么就直接一个循环n次的for循环. 穷举法依赖的基本技 ...

  9. python穷举法_python 穷举指定长度的密码例子

    本程序可根据给定的字符字典,穷举指定长度的所有字符串: def get_pwd(str, num): if(num == 1): for x in str: yield x else: for x i ...

最新文章

  1. magento根据浏览次数为商品做排行
  2. C语言经典例21-猴子吃桃问题
  3. excel只对筛选后的结果单独用公式
  4. linux ejb远程调用,[转载]在容器外使用EJB 3.0 Persistence
  5. 【论文阅读】Illuminating Pedestrians via Simultaneous Detection Segmentation
  6. 图 之遍历----深度优先遍历0.o
  7. Java大厂面试100题,你面试时总会用到的!
  8. alpha冲刺-事后诸葛亮
  9. 神经网络与深度学习第1章:绪论 阅读提问
  10. Winform程序多种语言切换
  11. 2022年智慧城市行业概括及现状
  12. 【折腾】GitHub Actions 反代 RSSHub + 多实例轮询
  13. openstack里给云主机配置vip
  14. 甲骨文UBUNTU安装宝塔面板无法访问
  15. 四旋翼飞行器的原理研究和建模
  16. 2022年openstack快速安装 Skyline 组件安装,支持极简化配置
  17. MNI模板和Talairach模板的区别
  18. F2FS源码分析-1.2 [F2FS 元数据布局部分] Superblock结构
  19. SQL Server 2016 AlwaysOn搭建
  20. Android P 图形显示系统(四) Android VirtualDisplay解析

热门文章

  1. LeetCode第 57 场力扣夜喵双周赛(差分数组、单调栈) and 第 251 场力扣周赛(状态压缩动规,树的序列化,树哈希,字典树)
  2. Gartner:2021 年塑造未来的 9 大技术趋势
  3. 用于实体和关系抽取的封装式悬空标记
  4. 《黄金时代》与《萧红评传》
  5. IT小唐的python函数库
  6. 智慧赋能 高效监管 | 工程勘察作业与质量监管数字化平台
  7. mysql错误代码: 1060 Duplicate column name ‘sno‘
  8. [附源码]计算机毕业设计JAVAjsp基于web的停车收费管理系统
  9. 2020机器学习技术总结
  10. .Net 和Java开发平台的区别