您的位置:首页 > 其它

Lowest Common Multiple Plus

2014-10-28 19:43 162 查看
[align=left]Problem Description[/align]
求n个数的最小公倍数。

[align=left]Input[/align]
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。

[align=left]Output[/align]
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。

[align=left]Sample Input[/align]

2 4 6
3 2 5 7

[align=left]Sample Output[/align]

12
70

#include <stdio.h>
int get_lcm(int a,int b);

int main(){
int n;
int result;
int number;

while((scanf("%d",&n))!=EOF){
result=1;
while(n--){
scanf("%d",&number);

result=get_lcm(result,number);
}

printf("%d\n",result);
}
return 0;
}

int get_lcm(int a,int b){
int temp;
int remainder;
int A;
int B;

A=a;
B=b;

if(a<b){
temp=a;
a=b;
b=temp;
}

while(a%b){
remainder=a%b;
a=b;
b=remainder;
}

return A/b*B;  //不能写成A*B/b,因为可能会溢出
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: