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;
}

修改了 。这样的 输入输出对不对?

#内推##春招##实习##笔试题目##笔经##前端#
全部评论
为啥子是0通过率呢?
点赞 回复
分享
发布于 2018-05-07 23:07
输出是print啊
点赞 回复
分享
发布于 2018-05-07 23:08
联想
校招火热招聘中
官网直投
你没定义checkdup?
点赞 回复
分享
发布于 2018-05-07 23:25
同楼主,编辑器上结果明明正确,通过率为零
点赞 回复
分享
发布于 2018-05-08 16:33
我觉得应该是你的输出有问题吧, if(flag){result.push([j,sum]);}和if(flag){result.push(j,sum);}不一样的
点赞 回复
分享
发布于 2018-05-08 20:51

相关推荐

大家收到面试预通知了吗?
投递中国邮政储蓄银行等公司7个岗位 >
点赞 评论 收藏
转发
点赞 18 评论
分享
牛客网
牛客企业服务