25: 最小公倍数
25 最小公倍数
作者: xxx 时间限制: 1S 章节: 循环
问题描述 :
给定两个正整数,计算这两个数的最小公倍数
输入说明 :
输入包含T组测试数据,每组只有一行,包括两个不大于1000的正整数.
输出说明 :
对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。
输入范例 :
3
200 50
9 11
18 21
输出范例 :
200
99
126
代码:
#include <stdio.h>
#include <string.h>
int main()
{
int n, m, k, max1,min1,min;
int hash[1000] = { 0 };
scanf("%d", &k);
for (int kl = 0; kl < k; kl++)
{
scanf("%d%d", &n, &m);
if (m>=n)
{
max1 = m; min1 = n;
}
else
{
min1 = m; max1 = n;
}
if (max1%min1 == 0)
{
printf("%d\n", max1);
}
else
{
for (int i = 2; i < min1; i++)
{
if (min1%i == 0)
{
min = min1;
while (min%i == 0&&min!=0)
{
hash[i]++;
min /= i;
}
while(max1%i == 0&& (hash[i]>0))
{
max1 /= i;
hash[i]--;
}
}
}
printf("%d\n", min1*max1);
}
memset(hash,0,sizeof(hash));
}
return 0;
}
Yesterday is history,tomorrow ismystery,but today is a gift!That why it is called Present!