您的位置:首页 > 其它

HDU - Lowest Common Multiple Plus

2013-03-23 16:33 141 查看
点击打开链接

#include <stdio.h>

int gcd(int n,int r)       //欧几里德递归求出最大公约数
{
return r?gcd(r,n%r):n;
}

int lcm(int n,int m)       //求出两个数之间的最小公倍数
{
return n/gcd(n,m)*m;   // 如果n*m的数字太大,那么可能溢出,这里采用先除再乘
}
int main()
{
int n;
while(scanf("%d",&n) != EOF)
{
int res = 1,k;
while(n--)
{
scanf("%d",&k);
res = lcm(res,k);   //所有数的最小公倍数
}
printf("%d\n",res);
}
}

求出所有数字的最小公倍数,可以先每次求出两个数的之间的最小公倍数,最后,得出的结果是所有的数的最小公倍数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: