问题链接:CCF NOI1065 最小公倍数。
时间限制: 1000 ms 空间限制: 262144 KB
题目描述
输入正整数n,m,编写程序计算n和m的最小公倍数。
输入
一行两个空格隔开的正整数n,m。
输出
输出n和m的最小公倍数。样例输入
12 18
样例输出
36
数据范围限制
1<=n,m<=10^6
提示
问题分析
这是一个数论问题,有标准的计算方法。
程序说明
参见参考链接。
要点详解
- C语言程序中,从重用性考虑,尽量将功能封装到函数中。
参考链接:计算最小公倍数LCM。
100分通过的C语言程序:
#include <stdio.h>
long gcd(long m, long n)
{
if(n == 0)
return m;
else
return gcd(n, m % n);
}
long lcm(long a, long b)
{
// return a * b / gcd(a, b);
return a / gcd(a, b) * b;
}
int main(void)
{
long n, m;
scanf("%ld%ld", &n, &m);
printf("%ld\n", lcm(n, m));
return 0;
}