问题描述:
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入说明:
输入两个正整数m和n。
输出说明:
输出m和n的最大公约数和最小公倍数。
输入样例:
8 12
输出样例:
4 24
先调换,将n换为大的数,m换为小的数,
求的是最大公约数,从上往下找,找到第一个可以同时除的开的数就是最大公约数,输出i
求得是最小公倍数,从下往上找,找到m*n即可,原理同上
#include<stdio.h>
int main()
{
int m, n;
scanf_s("%d %d", &m, &n);
int c;
if (m > n)//可以节省一点时间
{
c = m;
m = n;
n = c;
}
int i;
for (i = n; i >0; i--)
{
if (m % i == 0 && n % i == 0) //就是这么暴力
break;
}
int j;
for (j = n; j <= m*n; j++)
{
if (j % m == 0 && j % n == 0)
break;
}
printf("%d %d", i, j);
return 0;
}