两数的最大公约数和最小公倍数
来源:互联网 发布:手机熊猫抢福袋软件 编辑:程序博客网 时间:2024/06/14 13:03
最大公约数
方法一:辗转相除法
思路:欧几里得算法。其证明待学习。
(1)非递归实现
#include <stdio.h>int main(void){ int a,b,e,r; scanf("%d%d",&a,&b); if(a<b){ e=b; b=a; a=e; } while(a%b!=0){ r=a%b; a=b; b=r; } printf("%d",b); return 0;}
(2)递归实现
#include <stdio.h>int GCD(int a,int b){ /*if(a%b==0){ return b; } else{ return GCD(b,a%b); }*/ return a%b==0?b:GCD(b,a%b);}int main(void){ int a,b; scanf("%d%d",&a,&b); if(a<b){ int e; e=a;a=b;b=e; } printf("%d",GCD(a,b)); return 0;}
方法二:穷举法
思路:两个数的最大公约数可能取到的最大值是两数之中较小的那个数,所以从较小的数开始尝试,如果是两个数的公约数,则跳出循环输出该数;如果不是两个数的公约数,则继续尝试比该数小1的数,一直尝试到1。
#include <stdio.h>int main(void){ int a,b,i; scanf("%d%d",&a,&b); if(a>b){ int e; e=a; a=b; b=e; } for(i=a;i>1;i--){ if(a%i==0&&b%i==0){ break; } } printf("%d",i); return 0;}
最小公倍数
思路:两数的最小公倍数等于两数相乘后除以其最大公约数所得值。因此核心依然是计算最大公约数,不再赘述。
阅读全文
0 0
- 两数的最大公约数和最小公倍数
- 两数的最大公约数、最小公倍数
- python之计算两数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数?
- 求两个数的最大公约数和最小公倍数
- 计算两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- iOS多线程 一一 SDWebImage框架的基本使用
- pl/sql连接oracle服务端
- opencv——轮廓检测与画轨迹条
- adb命令获取手机截屏图片
- Java之多线程基础
- 两数的最大公约数和最小公倍数
- DeepMind发布最新原始音频波形深度生成模型WaveNet,将为TTS带来无数可能
- 递归修剪二叉树的理解
- 2017-12-16 杂记
- 第21节项目1-投票表决器
- Android Studio 常用快捷键分类整理
- codeforces 339A Helpful Maths
- c++实现表达式计算问题
- Ubuntu16.04学习总结