1.用连续整除检测法求两个正整数m和n的最大公约数
输入:两个正整数n和m
输出:两个正整数的最大公约数
1)将min{m,n}的值赋给t,
2)m除以t,如果余数为0,进入3),否则,进入4)。
3)n除以t,如果余数为0,输出t,算法结束,否则,进入4)。
4)把t的值减1,返回到2)。
2.用欧几里德算法求两个正整数m和n的最大公约数
输入:两个正整数n和m
输出:两个正整数的最大公约数
1)m>n,如果n=0,返回m的值作为结果,同时算法结束;否则,进入2)。
2)m除以n,将余数付给r。
3)将n的值赋给m,将r的值赋给n,返回1)。
3.用相减法求两个正整数m和n的最大公约数
输入:两个正整数n和m
输出:两个正整数的最大公约数
1)先用两个数相减,判别差是否为0,若不为0,执行2),若为0,输出其中一个,即为公约数。
2)用小数和差组成新的数对,再执行1)。
算法学习笔记1——三种方法求最大公约数并分别测算算法的运行时间
最新推荐文章于 2022-07-01 15:45:58 发布