如何判断两个数是否互质
如何判断两个数是否互质
定理:gcd(a,b) = gcd(b,a mod b) // a和b的最大公因数,a和b的大小没影响。
①0和任意自然数的最大公约数就是那个自然数。(0可以除以任何数,自然数可以整除本身,所以最大公约数为那个自然数
②互质指最大公约数等于1的两个自然数。
③1和任意数互质。
判断是否互质代码如下:(如果求最大公因数,输出b即可)
//递推
bool gcd(int a, int b)
{if(a==1||b==1) // 两个正整数中,只有其中一个数值为1,两个正整数为互质数return true;while(1){ // 求出两个正整数的最大公约数int t = a%b;if(t == 0) {break;}else{a = b;b = t;}}if(b>1) return false;// 如果最大公约数大于1,表示两个正整数不互质else return true; // 如果最大公约数等于1,表示两个正整数互质
}
//递归(返回最大公约数)
int gcd(int a,int b){return b==0?a:gcd(b,a%b);
}
下面跟上自己的分析:
递推:
①如果两个数其中一个为1,则两个数互质。
②如果两个数正好可以整除,则不互质(b的值没有变化,输出false)
③如果没有整除则进行递推判断
- 如果两个数将来不互质,那么是相差n个最大公约数,那么进行辗转相除最后是可以变成一个数除以最大公约数,将t变为0,b为最大公约数的情况,无论a和b谁大谁小,具体可以带数尝试一遍流程就理解了。
- 两个数将来互质,辗转相除最后可以将b变为1。
递归:
①b为0,a为最大公约数
②b不为0,返回gcd(b,a%b)的最大公约数
如果互质,最后会返回1;不互质返回最大公约数
参考链接:https://blog.csdn.net/HelloZEX/article/details/82667263
如何判断两个数是否互质相关推荐
- python判断两个数是否互质_《算法》第一章——判断两个整数是否互质
判断两个整数互质的方法 概念:公约数只有1的两个数叫做互质数.根据互质数的概念可以对一组数是否互质进行判断.如:9和11的公约数只有1,则它们是互质数. 求商判断法:用大数除以小数,如果除得的余数与其 ...
- 7-1 判断两个数是否互质
编写判断两个大于1的正整数m和n是否互质(即是否有公共的因子)的函数并写出相应的主函数. 判断方法是: 用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能同时被某个数除尽,则m和n ...
- 几何原本-欧几里得算法(判断两数是否互质+最大公倍数)代码实现
几何原本-欧几里得算法(判断两数是否互质及相关推演程序)代码实现 纲目: 判断两数是否互质: 推广部分: 求最大公约数: 纲目: 判断两数是否互质: 程序描述:判断两数是否互质. 思维:欧几里得辗转相 ...
- C语言:判断两数是否互质
//返回值为1则互质 int mgcd(int a,int b) {int t;if(a<b){t=a;a=b;b=t;}while(a%b){t=b;b=a%b;a=t;}return b; ...
- python判断两数互质_hide handkerchief(判断两数是否互质)
Problem Description The Children's Day has passed for some days .Has you remembered something happen ...
- java判断两个数互质_AcWing 458. 比例简化-java(无需判断互质)
因为数据范围很小,这道题的基本思路就是枚举所有的A'和B',找出最小的那个. 枚举需要满足下面两个条件 1.A'和B'互质 2.A'/B'的比例大于等于原来的比例,并且尽可能接近. 其实这里无需判断A ...
- 求两数是否互质c语言程序,判断两个数a,b是否为互质数的程序,用C语言编写?...
优质回答 回答者:福尔摩猪 两个数互质,就是说两个数的没有公共因子,即最大公约数是1 程序如下: #include int GCD(int x,int y)//最大公约数函数,欧几里德算法 { int ...
- 【Java常用方法】求两个数的最大公因数、最小公倍数,两数是否互质
最大公因数 最好的办法就是gcd辗转相除法.有两种方式,一种是迭代,一种是递归. //迭代版本 int gcd(int a,int b){while(b!=0){int r=b;b=a%b;a=r;} ...
- C++: 判断两个数互质(最大公约数为1)
**定理:gcd(a,b) = gcd(b,a mod b) ** // a和b的最大公因数,a和b的大小没影响. ①0和任意自然数的最大公约数就是那个自然数. ②互质指最大公约数等于1的两个自然数. ...
最新文章
- boost::python::detail::copy_ctor_mutates_rhs相关的测试程序
- liferay remove Your request completed successfully.
- 最受欢迎的女友职业排行榜Top10
- 30 个实例详解 TOP 命令
- Facebook AI何恺明等最新研究MoCo(动量对比学习)第二版,超越Hinton的SimCLR,刷新SOTA准确率...
- python小课离线版_断网环境下利用pip安装Python离线安装包
- Go语言的interface
- NHibernate 操作视图 第十三篇
- [链表遍历|模拟] leetcode 2 两数相加
- matlab图上面加箭头,如何在matlab中显示箭头
- 035——VUE中表单控件处理之使用vue控制select操作文字栏目列表
- CXF webservice完整例子
- 4. 卷2(进程间通信)---管道和FIFO
- 暑期作息时间表模板_小学生暑假作息时间表模板范例
- 计算机桌面任务栏窗口对话框菜单的功能,电脑下方的任务栏不显示怎么办 在任务栏和开始菜单属性对话框...
- 正余弦转化之诱导公式:“奇变偶不变、符号看象限”
- 武汉大学计算机学院 夏令营,武汉大学计算机学院2020保研夏令营通知
- 单反相机的传奇—佳能单反50年辉煌之路(连载十三)
- Java对象内存大小计算
- 深信服 星耀前端一面面经+二面凉了
热门文章
- adb shell命令报错:error: no devices found 解决方法
- 建造《流浪地球2》中要毁灭人类的超级量子计算机MOSS的核心量子技术是什么?
- CentOS7上安装linux QQ
- 12.VC(ui)-AlphaBlend参数BLENDFUNCTION
- [渝粤教育] 西南科技大学 建筑工程定额与预算 在线考试复习资料2021版(1)
- 【攻破html系列——第五天】表格标签和列表标签
- 【小象学院】案例6——判断密码强弱v4.0
- 外贸分享:多哥市场开发攻略
- 麦满分免费早餐力挺高考考生
- wordpress优化禁用xml-rpc,删除xmlrpc.php防止暴力破解