春风十里不如你


私信TA

用户名:uq_97472887645

访问量:2491

签 名:

等  级
排  名 1661
经  验 2721
参赛次数 1
文章发表 4
年  龄 23
在职情况 学生
学  校
专  业 软件工程

  自我简介:

TA的其他文章

解题思路:

        我们用辗转相除法求最大公约数:首先我们将较大的数当作被除数,较小的数当作除数,两者相除得到余数;再将原来较小的数当作被除数,刚刚得到余数当作除数,两者相除;这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)

举例:求5和7的最大公约数

第一次:7%5,余数为2;

第二次:5%2,余数为1;

第三次:2%1,余数为0结束。


最小公倍数=两数的乘积/最大公约数;


解题步骤:

1、首先输入两个正整数,并用一个变量存储它们的乘积

2、判断两个数的大小,将大的数放在前面,小的数放在后面

3、用辗转相除法求出最大公约数

4、用第一步存储乘积的变量除以最大公约数得到最小公倍数


注意事项:(除号后面的数叫做除数,除号前面的数叫做被除数)


参考代码:

#include <stdio.h>
int main()
{
	int a, b, temp;
	scanf("%d%d", &a, &b);
	int res = a * b;
	if (b > a)
	{
		temp = a;
		a = b;
		b = temp;
	}
	while (1)
	{
		temp = a % b;
		if (!temp)
			break;
		a = b;
		b = temp;
	}
	printf("%d %d", b, res / b);
	return 0;
}


 

0.0分

12 人评分

  评论区

if(!temp)是什么意思
2022-06-10 21:03:39
  • «
  • 1
  • »