python求两个数的最大公约数穷举法_C++求最大公约数四种方法解析
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++求最大公约数四种方法解析相关推荐
- python求两个数的最大公约数穷举法_求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法...
#coding:utf-8 importtime#辗转相除法: defcommonDivisor1(num1,num2):if num1 temp=num1 num1=num2 num2=tempif ...
- python求两个数的最大公约数穷举法_五十九、如何求N个数的最大公约数和最小公倍数...
「@Author:Runsen」 ❝ 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化.「---- Runsen」 ❞ 上次介绍了短除法的因式分解,下面正式进入求解:「两个及 ...
- java 穷举法求水仙花数_常用算法-穷举法
穷举法又称为枚举法,它是在计算机算法设计中用得最多的一种编程思想.它的实现方式是:在已知答案范围的情况下,依次地枚举该范围内所有的取值,并对每个取值进行考查,确定是否满足条件.经过循环遍历之后,筛选出 ...
- java 穷举法_C++基本算法思想之穷举法
穷举算法(Exhaustive Attack method)是最简单的一种算法,其依赖于计算机的强大计算能力来穷尽每一种可能性,从而达到求解问题的目的.穷举算法效率不高,但是适应于一些没有规律可循的场 ...
- c语言穷举法等式求缺位数,四年级下册数学奥数试题-培优拓展训练--第13讲:数字谜题(教师版)...
第十三讲数字谜题 ------------------------------------------------------------------------------------------- ...
- 通过Python的列表、while循环,穷举法解决农夫过河问题
题目:一农夫带着一头狼,一只羊和一担草过河,小船只能一次装载农夫和一样货物,狼会吃羊,羊会吃草,只有农夫在时才安全.现欲让所有物品包括农夫都安全过道河对岸,使用程序实现求解. 学习完毕<Pyth ...
- Python【算法设计与分析】穷举法
# -*- ecoding: utf-8 -*- # @ModuleName: s50 # @Function: 现在36块石板,有36个人,男生每趟搬4块,女生每趟搬3块,2个小朋友能搬1块 # @ ...
- 【算法】最直接的算法——穷举法详解
第三章 穷举法 一.基本概念 穷举法又称为枚举法或者蛮力法,是一种简单直接解决问题的方法,常常是基于问题的直接描述去编写程序,比如说求n的阶乘,那么就直接一个循环n次的for循环. 穷举法依赖的基本技 ...
- python穷举法_python 穷举指定长度的密码例子
本程序可根据给定的字符字典,穷举指定长度的所有字符串: def get_pwd(str, num): if(num == 1): for x in str: yield x else: for x i ...
最新文章
- magento根据浏览次数为商品做排行
- C语言经典例21-猴子吃桃问题
- excel只对筛选后的结果单独用公式
- linux ejb远程调用,[转载]在容器外使用EJB 3.0 Persistence
- 【论文阅读】Illuminating Pedestrians via Simultaneous Detection Segmentation
- 图 之遍历----深度优先遍历0.o
- Java大厂面试100题,你面试时总会用到的!
- alpha冲刺-事后诸葛亮
- 神经网络与深度学习第1章:绪论 阅读提问
- Winform程序多种语言切换
- 2022年智慧城市行业概括及现状
- 【折腾】GitHub Actions 反代 RSSHub + 多实例轮询
- openstack里给云主机配置vip
- 甲骨文UBUNTU安装宝塔面板无法访问
- 四旋翼飞行器的原理研究和建模
- 2022年openstack快速安装 Skyline 组件安装,支持极简化配置
- MNI模板和Talairach模板的区别
- F2FS源码分析-1.2 [F2FS 元数据布局部分] Superblock结构
- SQL Server 2016 AlwaysOn搭建
- Android P 图形显示系统(四) Android VirtualDisplay解析
热门文章
- LeetCode第 57 场力扣夜喵双周赛(差分数组、单调栈) and 第 251 场力扣周赛(状态压缩动规,树的序列化,树哈希,字典树)
- Gartner:2021 年塑造未来的 9 大技术趋势
- 用于实体和关系抽取的封装式悬空标记
- 《黄金时代》与《萧红评传》
- IT小唐的python函数库
- 智慧赋能 高效监管 | 工程勘察作业与质量监管数字化平台
- mysql错误代码: 1060 Duplicate column name ‘sno‘
- [附源码]计算机毕业设计JAVAjsp基于web的停车收费管理系统
- 2020机器学习技术总结
- .Net 和Java开发平台的区别