关闭

欧拉计划 - javascript解题方法

标签: 欧拉javascript
71人阅读 评论(0) 收藏 举报
分类:

目录:

题目1:找出1000以下自然数中3和5的倍数之和。

    var sum = 0;
    for (var i = 0; i < 1000; i++) {
        if (i % 3 == 0 || (i % 5 == 0)) {
            sum += i;
        }
    }

题目2:在斐波那契数列中,找出4百万以下的项中值为偶数的项之和。

注意:斐波那契数列中的每一项被定义为前两项之和。从1和2开始,斐波那契数列的前十项为:1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …。

    function f(n) {
        if (n == 1) {
            return 1
        }
        if (n == 2) {
            return 2
        }
        return f(n - 1) + f(n - 2)
    }
    var sum = 0;
    for (var i = 1; f(i) <= 4000000; i++) {
        if (f(i) % 2 == 0) {
            sum += f(i);
        }
    }
    console.log(sum);

题目3:找出一个合数的最大质数因子

    //n为合数
    var n = 13195;
    var max=0;
    for (var j = 2; j < n; j++) {
        //先算出因子
        if (n % j == 0) {
            //再算出因子中的质数
            IfPrimeNo(j);
        }
    }

    <!--如果用2到根号zs之间的所有整数去除,均无法整除,则zs为质数。-->
    function IfPrimeNo(zs) {
        for (var i = 2; i <= Math.sqrt(zs); i++) {
            if (zs % i == 0) {
                return false;
            }
        }
        if(zs>max){
            max=zs;
        }
    }
    console.log(max);

题目4:找出由两个三位数乘积构成的回文。

注意:一个回文数指的是从左向右和从右向左读都一样的数字。最大的由两个两位数乘积构成的回文数是9009 = 91 * 99。

    var arr = [];
    var max = 0;
    var maxi = 0;
    var maxj = 0;
    var maxVal = 0;
    for (var i = 899; i <= 999; i++) {
        for (var j = 899; j < 999; j++) {
            maxVal = i * j;
            //将字符串分割为数组
            arr = String(i * j).split("");
            //从左向右和从右向左读都一样的数字
            if ((arr[0] == arr[5]) && (arr[1] == arr[4]) && (arr[2] == arr[3])) {
                if (parseInt(arr.join("")) > max) {
                    //找到最大的回文数字
                    max = parseInt(arr.join(""));
                    maxi = i;
                    maxj = j;
                }
            }
        }
    }
    alert("最大的三位数回文由" + maxi + "*" + maxj + "为" + max);

注意:欧拉题库来源http://pe.spiritzhang.com/

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:148次
    • 积分:20
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档