最大公約數與最小公倍數的總結
阿新 • • 發佈:2019-01-29
最大公約數與最小公倍數
2個數的演算法(歐幾里德演算法)
#include <iostream> using namespace std; int gcd(int a,int b) { int r=a%b; while (r!=0) { a=b; b=r; r=a%b; } return b; } int main() { int a,b; while(cin >> a >> b) { cout << gcd(a,b) << endl; cout << a/gcd(a,b)*b << endl; } return 0; }
(2)減法
#include <iostream> using namespace std; int gcd(int a,int b) { while (a!=b) { if (a>b) a=a-b; else b=b-a; } return a; } int main() { int a,b; while(cin >> a >> b) { cout << gcd(a,b) << endl; cout << a/gcd(a,b)*b << endl; } return 0; }
(3)簡單程式碼
int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
(4)多個數的演算法
#include <iostream> using namespace std; int gcd(int a,int b) { while (a!=b) { if (a>b) a=a-b; else b=b-a; } return a; } int main() { int a,b; int n,t; cin >> n; cin >> a >> b; a=gcd(a,b); n=n-2; while(n--) { cin >> t; a=gcd(t,a); } cout << a << endl; return 0; }