51信用卡-前端-笔试编程题2
编程题第二题:
while(input = readline()) {
print(myfunction(str));
}
function myfunction(input) {
var max = Math.abs(input[0]);
var result = [];
for (var i = 0; i < input.length; i++) {
if (max < Math.abs(input[i])) {
max = Math.abs(input[i]);
}
}
for (var k = 2; k <= max; ++k) {
var sum = 0;
var flag = 0;
if (!isPrime(k)) { // 非素数,跳出当前判断,直接判断下一个数
continue;
}
for (var j = 0; j < input.length; ++j) {
if (input[j] % k == 0) {
flag = 1;
sum += input[j]; // 数字的质因数包括k,则将该数值加到sum中去
}
}
if (flag == 1) {result.push(k,sum);}
}
return result;
}
function isPrime(x) {
var top = Math.sqrt(x);
for (var i = 2; i <= top; i++) {
if (x % i == 0) {
return false;
}
}
return true;
} 修改了 。这样的 输入输出对不对?
#内推##春招##实习##笔试题目##笔经##前端#
查看1道真题和解析