求最大公约数的三种方法(伪代码)
伪代码
介于自然语言和程序设计语言之间的方法,它采用某一程序设计语言的基本语法,操作指令可以结合自然语言来设计。
一、辗转相除法
输入:两个整数n、m
输出:两个整数的最大公约数
1、初始化定义变量a,a=n%m;
2、判断a是否为0;
2.1 a=0;最大公约数为m;
2.2 a!=0;交换:n=m;m=a;继续a=n%m;
3、a=0;m为最大公约数;
二、更相减损术
输入:两个整数n、m
输出:两个整数的最大公约数
1、初始化变量count、result;
2、第一个while循环判断两数能否都除二;
2.1能除二,count++记录除二次数,直到退出循环;
2.2不能,进入下一个循环;
3、第二个while,n!=m;
3.1如果n>m,n=n-m;
3.2否则,m=m-n;
4、result =m*pow(2,count),result即为n、m的最大公约数;
三、穷举法
输入:两个整数n、m
输出:两个整数的最大公约数
1、定义一个变量x,将两整数中最小的赋值给x,x=n<m?n:m;
2、重复以下步骤直到找到最大公约数或x<=1结束
2.1 x从大到小逐渐减少;
2.2 当n%x0且m%x0,停止,x为n、m最大公约数;