c++中多个数的最小公倍数
ProblemDescription最小公倍数(LeastCommonMultiple,缩写LCM),是数论中的一个概念。两个整数公有的倍数称为它们的公倍数,其中最小的一...
Problem Description
最小公倍数(Least Common Multiple,缩写LCM),是数论中的一个概念。
两个整数公有的倍数称为它们的公倍数,其中最小的一个正整数称为它们两个的最小公倍数。
计算最小公倍数时,通常会借助最大公约数来辅助计算。
当然,n个数也可以有最小公倍数,例如:5,7,15的最小公倍数是105。
给你n个数,请你计算它们的最小公倍数。
Input
测试数据有多组,首先是一个整数T(1<=T<=50),表示测试组数。
每组测试分别是整数n(2<=n<=20)和n个正整数([1,100000])。这里保证最终的结果在int型范围内。
Output
对于每组测试,输出最小公倍数。
Sample Input
2
3 5 7 15
5 1 2 4 3 5
Sample Output
105
60 展开
最小公倍数(Least Common Multiple,缩写LCM),是数论中的一个概念。
两个整数公有的倍数称为它们的公倍数,其中最小的一个正整数称为它们两个的最小公倍数。
计算最小公倍数时,通常会借助最大公约数来辅助计算。
当然,n个数也可以有最小公倍数,例如:5,7,15的最小公倍数是105。
给你n个数,请你计算它们的最小公倍数。
Input
测试数据有多组,首先是一个整数T(1<=T<=50),表示测试组数。
每组测试分别是整数n(2<=n<=20)和n个正整数([1,100000])。这里保证最终的结果在int型范围内。
Output
对于每组测试,输出最小公倍数。
Sample Input
2
3 5 7 15
5 1 2 4 3 5
Sample Output
105
60 展开
1个回答
展开全部
#include "stdio.h"
int lcm2(int a,int b){
int t;
if(a>b)
for(t=a;t%b;t+=a);
else
for(t=b;t%a;t+=b);
return t;
}
int main(int argv,char *argc[]){
int n,T,i,k,t;
printf("Input T(int 1<=T<=50)...\nT=");
if(scanf("%d",&T)!=1 || T<1 || T>50){
printf("Input error, exit...\n");
return 0;
}
while(T--){
printf("Input n(int 1<n<21)...\nn=");
if(scanf("%d",&n)!=1 || n<2 || n>20){
printf("Input error, exit...\n");
return 0;
}
printf("Please enter %d positive integer(s):\n",n);
for(i=0;i<n;i++){
while(scanf("%d",&k)!=1 || k<1 || k>100000){
printf("Input error, redo: ");
fflush(stdin);
}
t = i ? lcm2(t,k) : k;
}
printf("The result is %d\n",t);
}
return 0;
}
运行样例:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询