- 求最大公约数:
int gcd(int a,int b){
if(b==0)
return a;
else
return gcd(b,a%b);
} //求最大公约数
- 最大公约数和最小公倍数之间的关系:
ab=pq //a、b为两个数,p、q分别为最大公因数和最小公倍数
- 计算最小公倍数时先初后乘,避免溢出。
代码如下:
#include<stdio.h>
#define MAXSIZE 10010
int gcd(int a,int b){
if(b==0)
return a;
else
return gcd(b,a%b);
} //求最大公约数
int main()
{
int n,i,a[MAXSIZE],x,y;
while(~scanf("%d",&n)){
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=1;i<n;i++){
x=gcd(a[0],a[i]); //a[0]和a[i]的最大公约数
y=a[0]/x*a[i]; //a[0]和a[i]的最小公倍数
a[0]=y;
}
printf("%d\n",a[0]);
}
return 0;
}