【數學問題】最大公約數與最小公倍數
一、最大公約數:
輾轉相除法
①、遞推式:gcd(a,b)=gcd(b,a%b);
②、遞推邊界: gcd(a,0)=a。
1、函式:
//求a與b的最大公約數
int gcd(int a,int b)
{
if(b==0) return a;
else return (b,a%b);
}
a,b相對位置無關。
2、完整程式碼:
#include<iostream>
using namespace std;
//求a與b的最大公約數
int gcd(int a,int b)
{
if(b==0) return a;
else return gcd(b,a%b);
}
int main()
{
int n,m;
while(cin>>n>>m)
{
cout<<gcd(n,m)<<endl;
}
return 0;
}
3、結果:
二、最小公倍數:
1、常識:
a與b的最小公倍數=a*b / 最大公約數。
為了防止溢位,可寫成 a / d * b。(d:a、b的最大公約數)
2、程式碼:
#include<iostream>
using namespace std;
//求a與b的最大公約數
int gcd(int a,int b)
{
if(b==0) return a;
else return gcd(b,a%b);
}
//求a與b的最小公倍數
int lcm(int a,int b)
{
return a/gcd(a,b)*b;
}
int main()
{
int n,m;
while(cin>>n>>m)
{
cout<<lcm(n,m)<<endl;
}
return 0;
}
2、結果:
相關文章
- 最大公約數,最小公倍數
- 最小公倍數&&最大公約數
- C++:最小公倍數與最大公約數C++
- 最大公約數和最小公倍數
- 最小公倍數和最大公約數
- 洛谷題單指南-數學基礎問題-P1029 [NOIP2001 普及組] 最大公約數和最小公倍數問題
- 洛谷P1029 [NOIP2001 普及組] 最大公約數和最小公倍數問題
- 用遞迴求出最大公約數和最小公倍數,求補充最小公倍數的遞迴用法遞迴
- 求兩個正整數的最大公約數與最小公倍數--C#實現C#
- NumPy 差分、最小公倍數、最大公約數、三角函式詳解函式
- C語言 用更相減損術求最大公約數,最小公倍數C語言
- python語言程式設計——求最大公約數和最小公倍數演算法Python程式設計演算法
- 求最大公約數 最簡手寫加STL
- 求最大公約數 & 最大公約數
- 求三個數的最小公倍數
- 最小公倍數 hd 1108
- Python求最小公倍數Python
- 約瑟夫環(約瑟夫問題)求最後出列的人數
- 004 最大公約數
- C. 最大公約數
- 杭電OJ 2028求n個數的最小公倍數
- 數論學習筆記 (3):因數與倍數筆記
- java求最小公倍數(親測秒懂)Java
- (杭電1019 最小公倍數) Least Common MultipleAST
- 求最大公公約數(最大公因數)—— 歐幾里得演算法演算法
- 數值最優化—優化問題的解(二)優化
- 最強素數
- 演算法設計與分析:求兩個自然數的最大公約數演算法
- Java公約公倍數Java
- 質數與約數
- 數論——質數與約數
- stackoverflow 提問:“計算兩個整數的最小公倍數的最有效方法是什麼?”
- acwing246 區間最大公約數
- 求最大公約數(輾轉相除法)
- 1062 最簡分數
- 【JAVA習題六】輸入兩個正整數m和n,求其最大公約數Java
- 更相減損法(求最大公約數)
- 更相減損術求解最大公約數