posts - 99,  comments - 8,  trackbacks - 0
这是一道简单的数论知识题,即  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)  编辑 收藏 引用 所属分类: 数论

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年8月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(4)

随笔分类

随笔档案

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜