#include <stdio.h>
void input(int b[],int n)
int f(int a[],int n)
main()
{ int a[20],n,d
scanf("%d",&n)
input(a,n)
d=f(a,n)
printf("%d\n",d)
}
int f(int a[],int n) /* 计算n个整数的最大公约数的函数*/
{ int t
int i,flag=1
for(t=a[0]t--)
{ flag=1
for(i=0i<n&&flag==1i++)
{ if(a[i]%t==0)
flag=1
else
{ flag=0
break
}
}
if(flag==1)
goto m
}
m:
return t
}
void input(int b[],int n) /* 输入n个元素到一维数组*/
{ int i
for(i=0i<ni++)
scanf("%d",&b[i])
}
举个例吧,如4和6两个数,求它们的最大公约数和最小公倍数。利用短除法:2∟ 4 6 得2 3,那么最大公约数就是2,最小公倍数就是2×2×3=12。 、
关键要弄清最大公约数和最小公倍数的概念。
公约数,就是能是所给出的数共同小化,就像是将分数简化一样。那么使得他们简化的数的乘积就是最大公倍数;若在乘上最终简化的结果数就是最小公倍数。
如4和6可写成4/6,同时约去的只有2,那么2是最大公约数;约去后变为2/3,2×2×3=12,为最小公倍数。