一、问题描述:求N个数的最大公约数和最小公倍数。
要求:1.程序风格良好(使用自定义注释模板);
2.提供友好的输入输出,并进行输入数据的正确性验证。
二、流程图:
最大公约数:
C语言实现求N个数的最大公约数和最小公倍数
最小公约数:
C语言实现求N个数的最大公约数和最小公倍数
三、程序实现:

//问题描述:求N个数的最大公约数和最小公倍数
// WanTing Wang 
// 2019.03
#include <stdio.h>  
#include <math.h>
 //辗转相除法 
int gys(int x,int y){
    int a;
    if(x<y){     //将大的数排在前面 
        a=x;
        x=y;
        y=a;
    }
    while(x%y!=0){         //一直循环直到y是x的因数 
        a=x%y; 
        x=y;                     // 不断取除数 作为x 
        y=a;                    //不断取余数 作为y                        
    }
    return y;                   //当y是x的因数时,y就是最大公因数 
}
int gbs(int x,int y){
    int result=(x*y)/(gys(x,y));
    return result;
}    
int main(){
int t;
scanf("%d",&t);
int i,x,y;
scanf("%d",&x);
int gys1=x,gbs1=x;
for(i=1;i<t;i++){
    scanf("%d",&y);
    gys1=gys(gys1,y);
    gbs1=gbs(gbs1,y);
}
printf("最大公约数和最小公倍数为:"); 
printf("%d %d",gys1,gbs1);
} 

四、测试
C语言实现求N个数的最大公约数和最小公倍数
C语言实现求N个数的最大公约数和最小公倍数

相关文章: