欧拉计划 - 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/

相关文章推荐

欧拉计划.doc

  • 2012年07月17日 16:35
  • 73KB
  • 下载

欧拉计划1-50题

  • 2012年03月27日 21:09
  • 112KB
  • 下载

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

(21)相亲数 对正整数n,定义d(n)为n除n本身以外的所有因数之和.如果d(a)=b,d(b)=a,且a,b不等,称(a,b)为一个相亲数对,a,b都称为相亲数.如220和284为一个相亲数对. ...

欧拉计划(14)Longest Collatz sequence

【题目】 The following iterative sequence is defined for the set of positive integers: n → n/2 (n ...
  • sgzqc
  • sgzqc
  • 2015年06月19日 10:21
  • 353

欧拉计划 第4题

题目 A palindromic number reads the same both ways. The largest palindrome made from the product of ...
  • Tabyou
  • Tabyou
  • 2014年03月02日 16:15
  • 598

欧拉计划 50

41这个质数,可以写作6个连续质数之和:41 = 2 + 3 + 5 + 7 + 11 + 13 这是100以下的最长的和为质数的连续质数序列。1000以下最长的和为质数的连续质数序列包含21个项,...

欧拉计划网第二十三题解决方案

题目23:算出所有不能写成两个过剩数之和的正整数之和。 如果一个数的所有真因子之和等于这个数,那么这个数被称为完全数。例如,28的所有真因子之和为1 + 2 + 4 + 7 + 14 = 28,所...

欧拉计划:相似的18题和67题,以及简单的20题100!,以及19题

题目里面说Problem18 和 67是一个类型的题目,那我们就把这两个题目放在一起来看一下: 首先18题: By starting at the top of the triangle be...

欧拉计划22

写上瘾了.... python好用!! 原题如下: Names scores Problem 22 Using names.txt (right click and '...

欧拉计划网第十三题解决方案

题目13:找出100个50位数之和的前十位数字。 找出以下100个50位数之和的前十位数字。 3710728753390210279879799822083759024651...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:欧拉计划 - javascript解题方法
举报原因:
原因补充:

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