C算法-求最大公约数和最小公倍数

来源:互联网 发布:淘宝信誉评级良好 编辑:程序博客网 时间:2024/05/16 07:13

题目及程序:

/** 9. 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。( 程序分析:利用辗除法。)**/#include <stdio.h>//求最大公约数int searchGCM(int aNumber,int bNumber){    int GCM,remainder=0,temp=0,tag=-1;//remainder存放余数,temp用于交换    //首先要保证aNumber>=bNumber    if (aNumber<bNumber) {        temp=aNumber;        aNumber=bNumber;        bNumber=temp;}    while (aNumber%bNumber!=0) {        tag=0;//标记两个数不互为质数        temp=aNumber%bNumber;//temp是余数        aNumber=bNumber;        bNumber=temp;    }//    GCM=(tag==-1?0:bNumber);//互素返回0    return bNumber;}//求最小公倍数=(a*b)/GCMint searchLCM(int GCM,int aNumber,int bNumber){    int LCM;    if (GCM!=0) {//最大公约数不为0        LCM=(aNumber*bNumber)/GCM;    }else{        LCM=aNumber*bNumber;    }    return LCM;}int main(){    int aNumber,bNumber,GCM;    printf("----求两个数的最大公约数和最小公倍数----\n");    printf("请输入两个不为0的数:\n");    scanf("%d %d",&aNumber,&bNumber);    while(aNumber*bNumber==0){//输入数字中有0        printf("请输入两个非0数字!请重新输入:\n");        scanf("%d %d",&aNumber,&bNumber);    }    GCM=searchGCM(aNumber,bNumber);    printf("%d%d的最大公约数是%d\n",aNumber,bNumber,GCM);    printf("%d%d的最小公倍数是%d\n",aNumber,bNumber,searchLCM(GCM,aNumber,bNumber));    return 0;}

运行:

这里写图片描述

0 0
原创粉丝点击