¿Cómo encontrar el máximo común divisor de dos números? (Lanzar y girar para dividir, lanzar y restar, y encontrar directamente)

●三种求最大公约数方法
 int GreComdiv(int a,int b)    //辗转相除法
 {
    
    
     while(a!=0)
	 {
    
    	
	        if(a<b)    //使a大于b
 	    {
    
    
 	 	    int temp=a;
 		    a=b;
 		    b=temp;
	    }
	 	a=a%b;        //不断地求余,直到a==0
	  }
	 return b;
 }

int GreComdiv(int a,int b)      //辗转相减法
 {
    
    
	 while(a!=b)
    {
    
    
	        if(a<b)      //使a大于b
 	    {
    
    
 		    int temp=a;
 	     	a=b;
 		    b=temp;
	    }
	    a=a-b;	        //不断地相减,直到相等
	}
 	return a;
 }


int GreComdiv(int a,int b)   //直接寻找法
 {
    
    
 	int i=0;
 	int n=0;
 	for(i=1;i<=a;i++)
 	{
    
    
        //从小到大找到既能整除a又能整除b的i赋值给n
 		   if((a%i==0)&&(b%i==0))
 		{
    
    
 			n=i;
 		}
 	}
	return n;
 }

 int main()
 {
    
    
 	int a;
 	int b;
 	int n=0;
 	printf("请输入两个数:");
 	scanf("%d %d",&a,&b);
    n=GreComdiv(a,b);
    printf("%d和%d的最大公约数是:%d",a,b,n);
 	return 0;
 }

Supongo que te gusta

Origin blog.csdn.net/cfk17829572643/article/details/109726265
Recomendado
Clasificación