当前位置:网站首页>C语言 最大公约数,最小公倍数(详细注释代码 一次解决)
C语言 最大公约数,最小公倍数(详细注释代码 一次解决)
2022-08-09 13:23:00 【东区东区!】
我们采用欧几里德算法(Euclidean algorithm),是求两个正整数之最大公约数的算法。
具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
#include<stdio.h>
int gcd(int long long a,int long long b); //声明我们要定义的函数
int gcd(int long long a,int long long b) //定义gcd函数
{
int long long t,r; //定义长整形
if(a<b) //用较大数除以较小数,再用出现的余数(第一余数)
//接上:去除除数,再用出现的余数(第二余数)去除第一余数
{
t=a;
a=b;
b=t;
}
r=a%b;
if(r==0) //如果直接a对b取余为0,那么直接b就是最小公约
{
return b;
}
else
{
return gcd(b,r); //若取不到0,那么便进行递归,再次执行定义的函数
}
}
int main(void) //主函数
{
int long long m,n,r; //长整型
scanf("%lld %lld",&m,&n); //输入你要求的2个数
r=gcd(m,n); //用定义的gcd函数得到你的结果
printf("%lld %lld\n",r, m*n/r);
return 0;
}
运行结果无报错,且成功执行
边栏推荐
猜你喜欢
随机推荐
皮肤资料整理
Mysql seven connection query methods
系统可扩展性思考
pytest 之 fixture的调用
1.11 flink中的动态加载udf jar包
蓝桥历届真题-门牌制作
KMP方法
Spark读取多目录
DCT变换与反变换
Jetpack Compose - simply the basic attributes of Modifier is introduced
ODA一体机有什么缺点
【面试高频题】可逐步优化的链表高频题
远程控制软件-向日葵
NC192 二叉树的后序遍历
opencv-matchTemplate 之使用场景为大图里面找小图
NC84 完全二叉树结点数
笔试题记录~~
面试官:请说说什么是BFC?大白话讲清楚
Jetpack Compose——Image(图片)的使用
Sql之各种Join