输入两个整数,求输出这两个整数的最大公约数。

时间:2022-09-27 09:46:42
#include<stdio.h>  
int m, n, a, b;  
void fuction1(int a,int b )  /* 相减法求最大公约数 */  
{  
    m=a; n=b;   
     /* a, b不相等,大数减小数,直到相等为止。*/   
   while ( a!=b)   
         if (a>b)  a=a-b;       
         else  b=b-a; 
   printf("第一种算法求得最大公约数为:%d\n", a);  
}  
void fuction2 (int a,int b)  /* 穷举法求最大公约数 */  
{     int t;
   m=a;  n=b;   
   for (int i=1; i<= a; i++)    
       if ( a%i == 0 && b%i ==0 ) t=i;  
   printf("第二种算法求得最大公约数为:%d\n", t);    



void fuction3(int a,int b)   /*  辗转相除法求最大公约数 */   
{  int c;
   m=a;n=b;  
   while(b!=0)  /* 余数不为0,继续相除,直到余数为0 */   
   { c=a%b; a=b;  b=c;}  
   printf("第三种算法求得最大公约数为:%d\n", a);  
}
void main()  

printf("请输入两个整数,并用逗号分隔开:\n");
scanf ("%d,%d", &a, &b);
    fuction1(a,b);
    fuction2(a,b);
    fuction3(a,b);
}