C++程序设计:最大公约数和最小公倍数算法

带解析

<1> 用辗转相除法(欧几里德法)求最大公约数 算法描述: m用n求余为a, 若a不等于0 则m = n, n = a, 继续求余 否则(即若a为0) n 为最大公约数 <2> 最小公倍数 = 两个数的积 / 最大公约数 #include "iostream" using namespace std; int gy(int a, int b) { int t; if (a < b) t=a,a=b,b=t; if (b == 0) return a; t= a%b; while (t!= 0) { a=b; b=t; t=a%b; } return b; } int gb(int a,int b) { return a*b/gy(a,b); } void main() { int a,b; cout<<"输入两个数字:"; cin>>a>>b; cout<<"最大公约数:"<<gy(a,b)<<",最小公倍数:"<<gb(a,b)<<endl; }
温馨提示:答案为网友推荐,仅供参考
相似回答