输入两个正整数,求这两个正整数的最大公约数和最小公倍数

一、最大公约数:

1、这个数小于等于2个数的较小值。

2、这个数可以被2个数同时整除。

3、要是最大的公约数。

二、最小公倍数:

1、这个数要大于等于2个数的较大值。

2、这个数能同时整除2个数。

3、是最小的公倍数。

主要由for循环来实现。

代码:

#include
int main(int argc, const char *argv[])
{
	int a,b,c,max,min,i=1,j=1;
	printf("输入2个正整数\n");
	scanf("%d,%d",&a,&b);
	if(a>b)
	{
		max=a;min=b;
	}
	else
	{
		min=a;max=b;
	}
	for(i=1;i<=min;i++)
	{
		if(a%i==0&&b%i==0)
			c=i;
	}	
	printf("最大公因数为%d\n",c);
	for(i=max;;i++)
	{
		if(i%a==0&&i%b==0)
		{
			break;
		}
	}
	printf("最小公倍数为%d\n",i);
	return 0;
}

一、首先用if语句比较出2个数的大小,并给max和min赋值

	if(a>b)
	{
		max=a;min=b;
	}
	else
	{
		min=a;max=b;
	}

二、用for语句去找出最大公约数,并输出结果

	for(i=1;i<=min;i++)
	{
		if(a%i==0&&b%i==0)
			c=i;
	}	
	printf("最大公因数为%d\n",c);

三、继续用for语句找出最小公倍数,并输出结果

	for(i=max;;i++)
	{
		if(i%a==0&&i%b==0)
		{
			break;
		}
	}
	printf("最小公倍数为%d\n",i);

最终结果:输入两个正整数,求这两个正整数的最大公约数和最小公倍数_第1张图片

 

你可能感兴趣的:(c语言)