码迷,mamicode.com
首页 > 编程语言 > 详细

C语言求最大公约数(两种最简单的算法实现)

时间:2017-04-27 19:47:02      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:include   result   公约数   c语言   

第一种:用较小数的最大约数于较大数作求模元算

#include<stdio.h>
/*
    求两个数的最大公约数
*/

int main(){
    int a,b,max,min,i,result;
    scanf("%d,%d",&a,&b);

    printf("您输入的的值分别为%d,%d\n",a,b);
    
    if(a>b){
        max=a;
        min=b;    
    }else if(a == b){
        result=a;
        goto out;
    }else{
        max=b;
        min=a;
    }
    
    for(i=min;i>0;i--){
        if((min%i) == 0){
            if((max%i) == 0){
                result = i;
                goto out;
            }
        }
    }
    
    out:
    printf("最大公约数为:%d\n",result);
    return 0;
}


第二种:古老的数学算法--辗转想除法

#include<stdio.h>
/*
    求两个数的最大公约数
    使用辗转相除法
*/

int main(){
    int a,b,max,min,i,result;
    scanf("%d,%d",&a,&b);

    printf("您输入的的值分别为%d,%d\n",a,b);
    
    if(a>b){
        max=a;
        min=b;    
    }else if(a == b){
        result=a;
        goto out;
    }else{
        max=b;
        min=a;
    }
    
    while(min != 0 ){
        i=max%min;
        printf("%d,%d,%d\n",max,min,i);
        max=min;
        min=i;
    }    
    
    out:
    printf("最大公约数为:%d\n",max);
    return 0;
}


C语言求最大公约数(两种最简单的算法实现)

标签:include   result   公约数   c语言   

原文地址:http://phpme.blog.51cto.com/663593/1919946

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!