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; }
修改了 。这样的 输入输出对不对?
#内推##春招##实习##笔试题目##笔经##前端#