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;
}
posted @ 2020-02-01 16:12  RabbitJwr  阅读(407)  评论(0编辑  收藏  举报