您的位置:首页 > 编程语言 > C语言/C++

c语言求两个数的最大公约数和最小公倍数

2014-10-15 09:27 281 查看
#include <stdio.h>

int main()

{

// 两个数的最大公约数求法:最大公约数是这两个数之间公共最大的约数,我们可以先找到这两个数的比较小的数;

int num1, num2, gys, gbs;

scanf("%d,%d", &num1, &num2);

int ji = num2*num1;

if (num1>num2) { // 找到两个数较小的数

int temp;

temp = num1;

num1 = num2;

num2 = temp; // 交互这两个数,保证num1是最小的数

}

for (int i = num1; i>0; i--) {

// 两个数同时满足除以最大的都能除尽的数就是最大公约数

if (num1%i == 0 && num2%i == 0) {

gys = i; // 最大公约数;

break;

}

}

gbs = ji/gys; // 最小公倍数 = 两个数的乘积除以最大公约数

printf("公约数:%d, 公倍数:%d\n", gys, gbs);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: