Find the divisors!
题目:
Create a function named divisors/Divisors that takes an integer n > 1 and returns an array with all of the integer’s divisors(except for 1 and the number itself), from smallest to largest. If the number is prime return the string ‘(integer) is prime’ (null in C#) (use Either String a in Haskell and Result<Vec, String> in Rust).
翻译(来自有道翻译):
创建一个名为divisors/ divisors的函数,该函数接受一个整数n > 1,并返回一个数组,其中包含该整数的所有除数(除了1和数字本身),从最小到最大。如果数字是素数,返回字符串’(integer)是素数’(c#中为null)(在Haskell中使用字符串a,结果,在Rust中使用字符串>)。
个人解题代码:
//思路:定义一个空数组tmp,使用for循环遍历输入值integer整除i
//如果可以整除就将i加到tmp当中,最后输出tmp,如果tmp为空输出integer is prime。
function divisors(integer) {
var tmp = [];
for(var i = 2 ; i < integer ; i++){
if(integer % i == 0){
tmp.push(i);
}
}
if(tmp.length ==0 ){
return integer+" is prime"
}else{
return tmp
}
};
高亮答案:
function divisors(integer) {
var res = []
for (var i = 2; i <= Math.floor(integer / 2); ++i) if (integer % i == 0) res.push(i);
return res.length ? res : integer + ' is prime'
};