如何判断两个数是否互质

定理: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)
③如果没有整除则进行递推判断

  1. 如果两个数将来不互质,那么是相差n个最大公约数,那么进行辗转相除最后是可以变成一个数除以最大公约数,将t变为0,b为最大公约数的情况,无论a和b谁大谁小,具体可以带数尝试一遍流程就理解了。
  2. 两个数将来互质,辗转相除最后可以将b变为1。
    递归:
    ①b为0,a为最大公约数
    ②b不为0,返回gcd(b,a%b)的最大公约数
    如果互质,最后会返回1;不互质返回最大公约数
    参考链接:https://blog.csdn.net/HelloZEX/article/details/82667263

如何判断两个数是否互质相关推荐

  1. python判断两个数是否互质_《算法》第一章——判断两个整数是否互质

    判断两个整数互质的方法 概念:公约数只有1的两个数叫做互质数.根据互质数的概念可以对一组数是否互质进行判断.如:9和11的公约数只有1,则它们是互质数. 求商判断法:用大数除以小数,如果除得的余数与其 ...

  2. 7-1 判断两个数是否互质

    编写判断两个大于1的正整数m和n是否互质(即是否有公共的因子)的函数并写出相应的主函数. 判断方法是: 用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能同时被某个数除尽,则m和n ...

  3. 几何原本-欧几里得算法(判断两数是否互质+最大公倍数)代码实现

    几何原本-欧几里得算法(判断两数是否互质及相关推演程序)代码实现 纲目: 判断两数是否互质: 推广部分: 求最大公约数: 纲目: 判断两数是否互质: 程序描述:判断两数是否互质. 思维:欧几里得辗转相 ...

  4. 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; ...

  5. python判断两数互质_hide handkerchief(判断两数是否互质)

    Problem Description The Children's Day has passed for some days .Has you remembered something happen ...

  6. java判断两个数互质_AcWing 458. 比例简化-java(无需判断互质)

    因为数据范围很小,这道题的基本思路就是枚举所有的A'和B',找出最小的那个. 枚举需要满足下面两个条件 1.A'和B'互质 2.A'/B'的比例大于等于原来的比例,并且尽可能接近. 其实这里无需判断A ...

  7. 求两数是否互质c语言程序,判断两个数a,b是否为互质数的程序,用C语言编写?...

    优质回答 回答者:福尔摩猪 两个数互质,就是说两个数的没有公共因子,即最大公约数是1 程序如下: #include int GCD(int x,int y)//最大公约数函数,欧几里德算法 { int ...

  8. 【Java常用方法】求两个数的最大公因数、最小公倍数,两数是否互质

    最大公因数 最好的办法就是gcd辗转相除法.有两种方式,一种是迭代,一种是递归. //迭代版本 int gcd(int a,int b){while(b!=0){int r=b;b=a%b;a=r;} ...

  9. C++: 判断两个数互质(最大公约数为1)

    **定理:gcd(a,b) = gcd(b,a mod b) ** // a和b的最大公因数,a和b的大小没影响. ①0和任意自然数的最大公约数就是那个自然数. ②互质指最大公约数等于1的两个自然数. ...

最新文章

  1. boost::python::detail::copy_ctor_mutates_rhs相关的测试程序
  2. liferay remove Your request completed successfully.
  3. 最受欢迎的女友职业排行榜Top10
  4. 30 个实例详解 TOP 命令
  5. Facebook AI何恺明等最新研究MoCo(动量对比学习)第二版,超越Hinton的SimCLR,刷新SOTA准确率...
  6. python小课离线版_断网环境下利用pip安装Python离线安装包
  7. Go语言的interface
  8. NHibernate 操作视图 第十三篇
  9. [链表遍历|模拟] leetcode 2 两数相加
  10. matlab图上面加箭头,如何在matlab中显示箭头
  11. 035——VUE中表单控件处理之使用vue控制select操作文字栏目列表
  12. CXF webservice完整例子
  13. 4. 卷2(进程间通信)---管道和FIFO
  14. 暑期作息时间表模板_小学生暑假作息时间表模板范例
  15. 计算机桌面任务栏窗口对话框菜单的功能,电脑下方的任务栏不显示怎么办 在任务栏和开始菜单属性对话框...
  16. 正余弦转化之诱导公式:“奇变偶不变、符号看象限”
  17. 武汉大学计算机学院 夏令营,武汉大学计算机学院2020保研夏令营通知
  18. 单反相机的传奇—佳能单反50年辉煌之路(连载十三)
  19. Java对象内存大小计算
  20. 深信服 星耀前端一面面经+二面凉了

热门文章

  1. adb shell命令报错:error: no devices found 解决方法
  2. 建造《流浪地球2》中要毁灭人类的超级量子计算机MOSS的核心量子技术是什么?
  3. CentOS7上安装linux QQ
  4. 12.VC(ui)-AlphaBlend参数BLENDFUNCTION
  5. [渝粤教育] 西南科技大学 建筑工程定额与预算 在线考试复习资料2021版(1)
  6. 【攻破html系列——第五天】表格标签和列表标签
  7. 【小象学院】案例6——判断密码强弱v4.0
  8. 外贸分享:多哥市场开发攻略
  9. 麦满分免费早餐力挺高考考生
  10. wordpress优化禁用xml-rpc,删除xmlrpc.php防止暴力破解