论坛首页 综合技术论坛

最小公倍/公约数

浏览 3682 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-11-05  

<SCRIPT LANGUAGE="JavaScript">
  <!--
//求两个数的最小公约数
 function commonDivisor(x,y){
   if(isNaN(x) || isNaN(y)) return "非法输入数据";
   var result =[];
   var max = Math.max(x,y);
   var temp = 1;
   while(temp<=max){
  if(x%temp==0 && y%temp==0){
     result.push(temp);
  }else{
    
  }
  temp++;
   }
   return result;
 }
 //求两个数的最小公倍数
 function  commonMultiple(x,y){
     if(isNaN(x) || isNaN(y)) return "非法输入数据";
  var amass = x*y;
  var min = Math.min(x,y);
  var temp = amass;
  var result=1;
  while(temp>=min && temp<=amass){   
    if(temp%x==0 && temp%y==0){
       result = temp;
    }else{
      
    }   
    temp--;
  }
  return result;
 }
 var t = commonMultiple(4,6);
 alert(t.toString())
 t =  commonDivisor(4,6);
 alert(t.toString());

  //-->
  </SCRIPT>

   发表时间:2008-11-06  
liushilang 写道

<SCRIPT LANGUAGE="JavaScript">
  <!--
//求两个数的最小公约数
 function commonDivisor(x,y){
   if(isNaN(x) || isNaN(y)) return "非法输入数据";
   var result =[];
   var max = Math.max(x,y);
   var temp = 1;
   while(temp<=max){
  if(x%temp==0 && y%temp==0){
     result.push(temp);
  }else{
    
  }
  temp++;
   }
   return result;
 }
 //求两个数的最小公倍数
 function  commonMultiple(x,y){
     if(isNaN(x) || isNaN(y)) return "非法输入数据";
  var amass = x*y;
  var min = Math.min(x,y);
  var temp = amass;
  var result=1;
  while(temp>=min && temp<=amass){   
    if(temp%x==0 && temp%y==0){
       result = temp;
    }else{
      
    }   
    temp--;
  }
  return result;
 }
 var t = commonMultiple(4,6);
 alert(t.toString())
 t =  commonDivisor(4,6);
 alert(t.toString());

  //-->
  </SCRIPT>

 

唉。

1.最小公约数肯定是1.

2.最大公约数×最小公倍=两个数的积

3.最大公约数有个辗转相除法

0 请登录后投票
   发表时间:2008-11-10  
是我没有写清楚,应该把最小公约数1除外,谢谢呀.第一篇自己写的小函数就出丑了.
0 请登录后投票
   发表时间:2009-02-03  
你有没有思考过求多个数的最小公倍数呢。。。
N个数的最小公倍数,除了利用N-1次辗转相除法分别求出最小公倍数意外,还有没有其他方法可以求呢?
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics