三种方式求最大公约数

来源:互联网 发布:jquery数组长度 编辑:程序博客网 时间:2024/05/01 17:19

1.更相减损法

2.辗转相除法

3.遍历

#include <stdio.h>void swapint(int*n, int*m){int temp = 0;temp = *n;*n=*m;*m=temp;}int getgcd1(int m, int n){int i = 0;while( m%2 == 0 && n%2 == 0){++i;m = m/2;n = n/2;}if( m < n ){swapint(&n,&m);}while( n != m-n){m = m - n;if( m < n ){swapint(&n,&m);}}while(i--){n = n<<1;}return n;}int getgcd2(int m, int n){int r = 0;while( m != 0 ){r = n % m ;n=m;m=r;}return n ;}int getgcd3(int m, int n){int i = 2;int x = 1;if( m < n){swapint(&n,&m);}i = n ;for(; i>2;--i){if( n%i==0 && m%i==0){x = i;break;}}return x ;}int main(){int i = 99 ;int j = 88 ;printf("1.   %d\n", getgcd1(i,j));printf("2.   %d\n", getgcd2(i,j));printf("3.   %d\n", getgcd3(i,j));printf("最小公倍数:%d\n",(i*j)/getgcd1(i,j));return 0;}


0 0
原创粉丝点击