最小共倍数和最大公约数--C++

来源:互联网 发布:联想笔记本无网络访问 编辑:程序博客网 时间:2024/05/16 08:21

算法:

GCD(a,0)=a;    //GCD---greatest commondivisor,最大公约数

GCD(a,b)=GCD(b,a%b) =......=GCD(r,0) =r  //假设a>b

GCM(a,b)=GCD(a,b) * max(a,b)   //greatest commonmeasure




程序代码:

/* * test.cpp * *  Created on: 2011-10-11 *  Author: ubuntu */#include<iostream>#include<cstdio>using namespace std;/** *求两个数的最大公约数 */int get_gcd(int a, int b) {int gcd = 0, r;if (a < b) {int temp = a;a = b;b = temp;}gcd = b;r = a % b;if (r != 0)gcd = get_gcd(b, r);return gcd;}/** * 获取两个数的最小公倍数 */int get_lcm(int a, int b) {int gcd = get_gcd(a, b);int lcm = a * b / gcd;return lcm;}int main() {int a, b;while (scanf("%d%d", &a, &b) == 2 && a + b) {cout << "最大公约数" <<get_gcd(a, b) << endl;cout << "最小公倍数" <<get_lcm(a, b) << endl;}return 0;}



原创粉丝点击