首页 > 编程语言 > 详细

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

时间:2017-04-27 18:52:39      阅读:241      评论:0      收藏: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;
    }
    
    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语言求最大公约数(两种最简单的算法实现)

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!