这是一道简单的数论知识题,即 a * b = gcd (a , b) * lcm (a, b);
但是这里要注意一下如何求多个数的lcm 因为易在只有一个数的时候发生错误
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int a[100000];
int gcd ( int a, int b)
{
if ( b == 0 )
return a;
else
return gcd ( b, a % b );
}
int lcm ( int a, int b )
{
return a / gcd ( a, b )* b;
}
int main ()
{
int t, m;
scanf ( "%d", &t);
while ( t -- )
{
int temp;
scanf ("%d", &m);
//输入数据
for ( int i = 0; i < m; i ++)
{
scanf ("%d", &a[i]);
}
//求值
temp = a[0];
for ( int i = 1; i < m; i ++)
{
temp = lcm ( temp , a[i]);
}
printf ("%d\n", temp);
}
system ("pause");
return 0;
}
posted on 2010-09-06 20:31
雪黛依梦 阅读(537)
评论(0) 编辑 收藏 引用 所属分类:
数论