如何减少此方法中数字素数的重复

时间:2015-09-02 04:01:29

标签: javascript functional-programming

我试图按照记录的解决方案解决Project Euler#3,但它导致重复主要因素。

在以上10个因子的例子中,2重复多次(3次),其中5不重复(我理解其背后的原因),但如何避免它并且只打印因子10 2和5。

2 个答案:

答案 0 :(得分:1)

更改您的代码,如下所示

n = 10;
f = 2;
lf = 1;
on = n;
while(n>1) {
   if(n%f == 0) {  
     while(on%f == 0) {
         lf = f;
         n = n/f;
         console.log(lf);
         f=f+1;
     }   
  } else if (n<f) {
      n = 0;
  }
    else {
        f=f+1;
    }
}

让我知道它是否有用

答案 1 :(得分:0)

这是解决方案伙伴.....

n = 10;
f = 2;
lf = 1;
while (n>1) {    
     if ( n%f ==0) {
          lf = f;
          n = n/f;
          while (n%f == 0) {
                 n = n/f;
          }
     console.log(f + "<br/>");
     }
     f = f + 1
}