求n个整数的最大公约数

#include<stdio.h>              //C头文件的调用
void main()
{ int k,n;
  long a,b,c,r,m[100];
  printf("请输入整数个数n: ");	// 输入原始数据 
  scanf("%d",&n);
  printf("请依次输入%d个整数: ",n);
  for(k=0;k<=n-1;k++)
    { printf("\n请输入第%d个整数: ",k+1);
      scanf("%ld",&m[k]);
    }
  b=m[0];
  for(k=1;k<=n-1;k++)  	    // 控制应用n−1次欧几里德算法 
  { a=m[k];
    if(a<b)
      { c=a;a=b;b=c;}	    //  交换a,b,确保a>b
    r=a%b;
    while(r!=0)
      { a=b;b=r; 	        //  实施"辗转相除" 
        r=a%b;
      }
  }
  printf("(%ld",m[0]);	   // 输出求解结果 
  for(k=1;k<=n-1;k++)
    printf(",%ld",m[k]);
  printf(")=%ld\n",b);
}

  

posted @ 2017-11-17 23:15  随心佩  阅读(4479)  评论(0编辑  收藏  举报