最小公倍数 SCU - 1630
2018-03-12 23:06
176 查看
求N个正整数的最小公倍数。
可以保证所有的测试数据及其最后的运算结果都在32位有符号整型数(即C++中的int)的范围内。
题解:水题;
代码(C语言)
#include <stdio.h>
#include <stdlib.h>
int lcm(int a,int b)
{
int t,x,y,lcm;
x=a;
y=b;
if(a<b){
t=a;
a=b;
b=t;
}
while(b!=0){
t=a;
a=b;
b=t%b;
}
lcm=x/a*y;
return lcm;
}//构建函数求两个数的最小公倍数,即lcm
int main()
{
int m,n,a,sum;
scanf("%d",&m);
while(m--){
scanf("%d",&n);
sum=1;
while(n--){
scanf("%d",&a);
sum=lcm(sum,a);
}
printf("%d\n",sum);
}
return 0;
}
输入
第一行为一个数M,表示测试数据的组数,接下来有M行,每行为一组测试数据。 每组测试数据由若干个整数组成,第一个数为N,表示紧接着有N个数,接下来有N个正整数。输出
对于每组测试数据,输出一行,即这N个数的最小公倍数。可以保证所有的测试数据及其最后的运算结果都在32位有符号整型数(即C++中的int)的范围内。
输入示例
2 3 5 7 15 6 4 10296 936 1287 792 1
输出示例
105 10296
题解:水题;
代码(C语言)
#include <stdio.h>
#include <stdlib.h>
int lcm(int a,int b)
{
int t,x,y,lcm;
x=a;
y=b;
if(a<b){
t=a;
a=b;
b=t;
}
while(b!=0){
t=a;
a=b;
b=t%b;
}
lcm=x/a*y;
return lcm;
}//构建函数求两个数的最小公倍数,即lcm
int main()
{
int m,n,a,sum;
scanf("%d",&m);
while(m--){
scanf("%d",&n);
sum=1;
while(n--){
scanf("%d",&a);
sum=lcm(sum,a);
}
printf("%d\n",sum);
}
return 0;
}
相关文章推荐
- 多个数最小公倍数
- java:最小公倍数和最大公约数
- 最大公约数和最小公倍数
- hdu 1788 Chinese remainder theorem again(最小公倍数)
- 蓝桥杯算法训练 最大最小公倍数
- 最大公约数与最小公倍数。
- 蓝桥 ALGO-2 最大最小公倍数
- 求两个整数的最大公约数和最小公倍数
- 最小公倍数(大数)
- C++练习之 求两个数的最大公约数与最小公倍数
- 求最大公约数和最小公倍数的常用解法
- JAVA算法---最大公约数和最小公倍数
- python 最大公约数与最小公倍数
- 第3周项目3输出最大公约数最小公倍数
- 多个数据的最小公倍数
- HDOJ 1019 Least Common Multiple(最小公倍数问题)
- 最大公约数与最小公倍数问题
- java小算法—输入两个正整数m和n,求其最大公约数和最小公倍数
- 常用算法(C#): 求一个数的最小公倍数
- 最大公约数与最小公倍数