求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); }