最近想学的东西很多,方向也很杂,希望能通过写博客来记录自己已学的知识和有疑惑的地方,起到总结的作用,因为自己所知甚少,所以更要一步一步地慢慢积累。
【要求】用c/c++求两数的最大公约数。
【背景】:最大公约数指两个或多个整数共有约数中最大的一个。求最大公约数的常见的有质因数分解法、短除法、辗转相除法、更相减损发。
【分析】在此我用三种算法来解决这个问题:
1.辗转相除法
【步骤】
① a%b得余数c
② 若c=0,则b即为两数的最大公约数
③ 若c≠0,则a=b,b=c,再回去执行①
2.Stein算法