欧拉计划 - javascript解题方法

原创 2017年01月03日 11:45:37

目录:

题目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/

如何快速解决欧拉计划第三题:素数问题

翻译成中文,第三题的题目是这样的: 13195的质数因子有5,7,13和29. 600851475143的最大质数因子是多少? 当然这个题目的思路是很简单的 第一:找出他所有的...
  • gaorongchao1990626
  • gaorongchao1990626
  • 2012年12月08日 10:48
  • 1329

欧拉计划译文及答案(11-20)

翻译&解答:Meili (11)方阵中的最大积 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 8...
  • Nithouson
  • Nithouson
  • 2017年01月26日 12:32
  • 1016

欧拉计划译文及答案(1-10)

欧拉计划(1-10) 翻译&解答:Meili (1)3和5的倍数      如果我们列出所有小于10的3或5的倍数,我们得到3、5、6、9.它们的和是23.      求出小于1000的3或5的倍数之...
  • Nithouson
  • Nithouson
  • 2017年01月24日 20:42
  • 1211

欧拉计划:第12,13,14题

第十二题:那么第一个拥有超过500个约数的三角形数是多少? 这道题的特点不是特别明显,也属于一个计算型的题目,没有什么难点,一次就能得出答案,题目如下: 三角形数序列是由对自然数的...
  • gaorongchao1990626
  • gaorongchao1990626
  • 2012年12月08日 21:58
  • 1669

欧拉计划译文及答案(31-40)

欧拉计划(31-40) 翻译&解答:Meili (31)硬币面值组合 英国的货币为英镑(£)和便士(p),1磅=100便士.经常流通的有8种硬币: 1p, 2p, 5p, 10p, 20p, ...
  • Nithouson
  • Nithouson
  • 2017年02月11日 17:00
  • 649

用matlab解欧拉计划题目

1. 求所有小于1000的能被3或5整除的自然数的和。 解:注意,小于1000不包含1000        解题方法:由于能被15整除的数都能被3和5整除,所以应该分别求出能被3和5整除的数的和再减去...
  • ttvipandc
  • ttvipandc
  • 2017年11月13日 16:45
  • 129

欧拉计划第5题

原题:2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any r...
  • Leeyy123
  • Leeyy123
  • 2016年07月14日 13:16
  • 381

python解答欧拉计划第59题

欧拉计划第59题,关于异或加密的算法,使用python进行解答
  • flurry_rain
  • flurry_rain
  • 2017年08月04日 08:21
  • 283

欧拉计划译文及答案(21-30)

(21)相亲数 对正整数n,定义d(n)为n除n本身以外的所有因数之和.如果d(a)=b,d(b)=a,且a,b不等,称(a,b)为一个相亲数对,a,b都称为相亲数.如220和284为一个相亲数对. ...
  • Nithouson
  • Nithouson
  • 2017年02月06日 20:56
  • 799

欧拉计划 50

41这个质数,可以写作6个连续质数之和:41 = 2 + 3 + 5 + 7 + 11 + 13 这是100以下的最长的和为质数的连续质数序列。1000以下最长的和为质数的连续质数序列包含21个项,...
  • chenwr_727
  • chenwr_727
  • 2016年12月23日 19:17
  • 151
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:欧拉计划 - javascript解题方法
举报原因:
原因补充:

(最多只允许输入30个字)