JavaScript 找出整数的约数

 

Create a function named divisors/Divisors that takes an integer and returns an array with all of the integer's divisors(except for 1 and the number itself). If the number is prime return the string '(integer) is prime' (null in C#) (use Either String a in Haskell and Result<Vec<u32>, String> in Rust).

Example:

divisors(12); // should return [2,3,4,6]
divisors(25); // should return [5]
divisors(13); // should return "13 is prime"

my answer
 1 function divisors(integer) {
 2   var arr = [];
 3   for(var i = 2; i < integer; i++){
 4      if(integer % i ===0){
 5      arr.push(i);}
 6    }
 7   if(arr.length ===0){
 8   return integer+' is prime';
 9   }else{
10   return arr;}     
11 };
上面方法不够完美,for循环里面 i <integer ,有重复,可以用如下方法,更简洁
best answer
1 function divisors(integer) {
2   var arr = [];
3   for (var i = 2; i <= Math.floor(integer / 2); ++i)
4   if (integer % i === 0) arr.push(i);
5   return arr.length ? arr : integer + ' is prime';
6 };

 

 

 

posted @ 2017-08-26 12:33  芒果夏夏  阅读(552)  评论(0编辑  收藏  举报