输入两个正整数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
运行程序,当输入两个正整数后,电脑就会计算出满足这两个数为最大公约数和最小公倍数的,所有整数对,并输出它们的个数。
注意事项
作者声明:本篇经验系本人辛勤劳动的原创成果,未经许可,谢绝转载。
下一篇:二分之根号二怎么约分