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;
}