多语言展示
当前在线:1132今日阅读:75今日分享:44

满足相同最大公约数和最小倍数的两个数的个数

输入两个正整数min和max,求任意两个正整数m和n,它们的最大公约数为min,最小公倍数为max,求满足条件的m和n,有多少对?如何用C++实现这一算法呢?小编与大家分享编程经验。
工具/原料

C++

方法/步骤
1

完成以上算法,关键是计算两个正整数m和n的最大公约数和最小公倍数,如果最大公约数和最小公倍数为min和max,则这两个正整数是要找的值。

2

首先,定义完成算法所需的变量,计数count设置为0。

3

输入两个正整数,保存在变量min和max中,作为需满足条件的最大公约数和最小公倍数。

4

用if语句判断,max是否小于min。

5

如果条件成立,则互换max和min的值,即保证min始终为最大公约数,而max始终为最小公倍数。

6

用for语句执行外层循环,即取m的值为最小公倍数。

7

执行内层循环,取n的值为最大公约数。

8

将m和n的值保存在临时变量中,如下所示。

9

用do-while语句执行循环,条件是n不等于0。

10

当条件成立时,计算最大公约数。

11

最大公约数的值保存在变量div中,值为m。

12

计算最小公倍数的值,保存在变量mul中。

13

用if语句判断,最大公约数和最小公倍数的值,是否为输入的mim和max的值,如果是则输出这两个整数,并计数。

14

将m和n恢复原来的值,如下图所示。

15

当条件成立时,退出内层循环。

16

最后,输出满足条件的整数对的个数。

17

运行程序,当输入两个正整数后,电脑就会计算出满足这两个数为最大公约数和最小公倍数的,所有整数对,并输出它们的个数。

注意事项

作者声明:本篇经验系本人辛勤劳动的原创成果,未经许可,谢绝转载。

推荐信息