C语言:1011.最大公约数与最小公倍数
题目描述:
输入两个正整数m和n,求其最大公约数和最小公倍数。
题解:
#include<stdio.h>
int main()
{
int a,b,k;
int max=1,min=1;//max为最大公约数,min为最小公倍数
int m,n;
scanf("%d %d", &a, &b);
k = a;
if(a > b){
k = b;//始终保持k为较小值
}
for(int i = 2; i <= k; i++){
if(a % i == 0 && b % i == 0){//判断i是否为a,b的公因子
max *= i;//最大公约数
}
}
m = a / max;
n = b / max;
min = max * m * n;//求出最小公倍数
printf("%d %d\n", max, min);
return 0;
}