求解最大公约数(两种)

简介: 求解最大公约数(两种)

题目

输入两个整数 a 和 b,请你编写一个函数,int gcd(int a, int b), 计算并输出 a 和 b 的最大公约数。


输入格式

共一行,包含两个整数 a 和 b。


输出格式

共一行,包含一个整数,表示 a 和 b 的最大公约数。


数据范围

1≤a,b≤1000


输入样例:

12 16


输出样例:

4


解析

解法1:递归

思路



代码

#include <iostream>usingnamespacestd;
intgcd(inta, intb){
if(a%b==0) returnb;
elsegcd(b,a%b);  
}
intmain(){
inta,b;
cin>>a>>b;
cout<<gcd(a,b);
return0;
}



解法2:

1、暴力从1开始除以,能整除以即得到最大公因数

#include <iostream>usingnamespacestd;
intgcd(inta, intb){
intc=min(a,b);
intd;
for(inti=1;i<=c;i++){
if(a%i==0&&b%i==0){
d=i;  
        }
    }
returnd;
}
intmain(){
inta,b;
cin>>a>>b;
cout<<gcd(a,b);
return0;
}



2、从两者最小值开始除以,能整除即得到最大公因数

#include <iostream>usingnamespacestd;
intgcd(inta, intb){
intc=min(a,b);
intd;
for(inti=c;i>=0;i--){
if(a%i==0&&b%i==0){
d=i;  
break;
        }
    }
returnd;
}
intmain(){
inta,b;
cin>>a>>b;
cout<<gcd(a,b);
return0;
}




❤️❤️❤️忙碌的敲代码也不要忘了浪漫鸭!


目录
相关文章
|
8月前
迭代法求一元三次方程
迭代法求一元三次方程
94 0
|
8月前
|
算法
求最大公约数和最小公倍数的算法
求最大公约数和最小公倍数的算法
88 0
迭代法解决递推问题:数列和,sinx,ex的近似值
迭代法解决递推问题:数列和,sinx,ex的近似值
133 0
|
存储
求解素数的筛选法
求解素数的筛选法
|
8月前
|
算法 Python
最大公约数算法
最大公约数算法
|
Python
递推方程
递推方程是一种数学方程,其中未知量的值被表示为先前已知量值的函数。递推方程通常具有递归的形式,即一个或多个变量被递归地定义为同一变量的函数。递推方程的一个关键特征是,解决方案通常可以通过迭代计算得到,而不是直接求解。递推方程广泛应用于数学、物理、计算机科学等领域。
122 0
数学问题之(矩阵加速递推快速幂)
数学问题之(矩阵加速递推快速幂)
求解最大公约数和最小公倍数
求解最大公约数和最小公倍数
求解最大公约数和最小公倍数
|
算法
求最大公约数和最小公倍数的几种算法
求最大公约数和最小公倍数的几种算法
164 0
|
算法 BI C++
【c++】三种算法求最小公倍数与最大公约数
【c++】三种算法求最小公倍数与最大公约数
1078 0