首页 > 代码库 > 辗转相除法求最大公约数-C

辗转相除法求最大公约数-C

 1 #include<stdio.h> 2  3 int main(void) 4 { 5     int x=252; 6     int y=105; 7      8     int temp;   //临时保存变量 9 10     while(y!=0) //当y也就是余数为0的时候,x就是约数11     {12         temp=x%y;  //将余数赋给下一步的除数13         x=y;        //交换运算的数14         y=temp;15     }16     17     printf("%d\n",x);18     return 0;19 }

辗转相除到最后一步,此时余数为0,被赋予y,同时除数被赋予x就是约数。

注意要保证x>y,关于验证是否有公约数的情况暂不讨论。

辗转相除法求最大公约数-C