作业帮 > 综合 > 作业

求大神指导,我到底错在哪!

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/18 12:45:12
求大神指导,我到底错在哪!
Problem Description
The least common multiple (LCM) of a set of positive integers is the smallest positive integer which is divisible by all the numbers in the set.For example,the LCM of 5,7 and 15 is 105.
Input
Input will consist of multiple problem instances.The first line of the input will contain a single integer indicating the number of problem instances.Each instance will consist of a single line of the form m n1 n2 n3 ...nm where m is the number of integers in the set and n1 ...nm are the integers.All integers will be positive and lie within the range of a 32-bit integer.
Output
For each problem instance,output a single line containing the corresponding LCM.All results will lie in the range of a 32-bit integer.
Sample Input
2
3 5 7 15
6 4 10296 936 1287 792 1
Sample Output
10510296
#include"stdio.h"
int main()
{
int n,i,j,k,m,a[1000],min;
scanf("%d",&n);
for(i=1;i=1;k--)
if(a[0]%k==0&&a[1]%k==0)
break;
min=(a[0]*a[1])/k;
for(j=2;ja[j])
{
k=min;
min=a[j];
a[j]=k;
}
for(k=min;k>=1;k--)
if(min%k==0&&a[j]%k==0)
break;
min=(min*a[j])/k;
}
printf("%d\n",min);
}
return 0;
}
问题太多 完全达不到题目要求的意思
题目看懂了没?就是求最小公倍数 所有输入数字的
不给你改了 你看下这个
#include
#include
long calc_lcm(long a, long b)
{
long i, min;
min = a 0; i --)
if((a % i == 0) && (b % i == 0)) break;
return a*b/i;
}
int main()
{
int loop;
long *array;
int size, i;
long lcm;

printf("input loop:");
scanf("%d", &loop);
while(loop --)
{
printf("please input number count and numbers\n");
scanf("%d", &size);

if(size
再问: 对啊,我写的代码所求的结果确实是所有输入数的最小公倍数啊
再答: 仔细看了一下 你写的应该也可以求出来的 没什么大问题 小问题有一个 题目中没提到最多可能输入多少数据,所以用a[1000]来限定,这样最大只能输入1000个计算因子,如果输入的m大于1000 会出问题 所以最好还是用动态分配