主题:求两个数的最大公约数
我在书上看到的方法 输入两个数a,b 先比较大小 假设比较出较小的数b
然后 for i:=b downto 1 do
if(a mod i=0) and (b omd i=0)
then begin
write(i);readln;
halt;
end;
接下来是在网上看到求两个数的最大公约数的方法:
用辗转相除法求两个数的最大公约数的步骤如下:
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除小的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。
例如求1515和600的最大公约数,
第一次:用600除1515,商2余315;
第二次:用315除600,商1余285;
第三次:用285除315,商1余30;
第四次:用30除285,商9余15;
第五次:用15除30,商2余0。
1515和600的最大公约数是15。
个人觉得第一种方法什么简单。 第二题不会编 所以请教下第二题到底怎么编~
最后在求教下 怎么求正整数的质因子~
比如36=2*2*3*3 19=1*19 2.3.19这些都是质因子~
然后 for i:=b downto 1 do
if(a mod i=0) and (b omd i=0)
then begin
write(i);readln;
halt;
end;
接下来是在网上看到求两个数的最大公约数的方法:
用辗转相除法求两个数的最大公约数的步骤如下:
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除小的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。
例如求1515和600的最大公约数,
第一次:用600除1515,商2余315;
第二次:用315除600,商1余285;
第三次:用285除315,商1余30;
第四次:用30除285,商9余15;
第五次:用15除30,商2余0。
1515和600的最大公约数是15。
个人觉得第一种方法什么简单。 第二题不会编 所以请教下第二题到底怎么编~
最后在求教下 怎么求正整数的质因子~
比如36=2*2*3*3 19=1*19 2.3.19这些都是质因子~