欧拉计划(js)

第一题

function fun(num) {
   let temp = 0;
   for (i = 0; i < num; i++) {
     if (i % 3 == 0 || i % 5 == 0) {
       temp += i
     }
   }
   return temp;
}

第二题

function name() {
      let arr = [];
      let a = 1;
      let b = 2;
      let c = a + b;
      while (c < 4000000) {
        a = b;
        b = c;
        c = a + b;
        if (c % 2 == 0) {
          arr.push(c);
        }
      }
      return arr.reduce((a, b) => a + b, 2);
    }

第三题

function fun(num) {
      if (num <= 0) {
        return;
      }
      let i = 2;
      let target; 
      while (num > 1) {
        if (num % i == 0) {
          num = num / i;
          // console.log(`${num}/${i}`);
          target = i;
        } else {
          i++;
        }
      }
      return target;
    }

第四题

function fun(){
        let max = 0
        for( let i = 999; i>=100;i-- ){
            for( let j = 999; j>=100;j-- ){
                let temp = i*j
                if (isHui(temp) && temp > max ) {
                    max = temp
                }
            }
        }
        return max
    }
    // 判断是否回文数
    function isHui(num) {
        num = num + ''
        return num === num.split("").reverse().join("")
    }

第五题

function fun() {
        for( let i = 20;;i++){
            let flag = true;
            for(let j = 1;j<=20;j++){
                if (i%j != 0) {
                    flag = false
                    break
                }
            }
            if (flag) {
                return i
                break
            }
        }
    }

第六题

function name(n) {
        // 公式
        temp = n*(n-1)*(n+1)*(3*n+2)/12
        return temp
        
        // let temp = 0
        // let temp2 = 0
        // for(let i = 0;i<=n;i++){
        //     temp += i
        //     temp2 += i*i
        // }
        // return Math.pow(temp,2) - temp2
    }

第七题

function fun() {
        let arr = []
        for(let j=2;;j++){
            if (isPrime(j)) {
                arr.push(j)
            }
            if (arr.length > 10001) {
                break
            }
        }
        return arr[arr.length-1] 
    }
    // 判断是否质数
    function isPrime(num) {
    // 只要3到num - 1 之间有一个数能被num整除 那么就不是质数
        for (let i = 3; i < num; i++) {
            if (num % i === 0) {
                return false
            }
        }
        return true
    }

第八题

function name(params) {
      var str =
        "73167176531330624919225119674426574742355349194934" +
        "96983520312774506326239578318016984801869478851843" +
        "85861560789112949495459501737958331952853208805511" +
        "12540698747158523863050715693290963295227443043557" +
        "66896648950445244523161731856403098711121722383113" +
        "62229893423380308135336276614282806444486645238749" +
        "30358907296290491560440772390713810515859307960866" +
        "70172427121883998797908792274921901699720888093776" +
        "65727333001053367881220235421809751254540594752243" +
        "52584907711670556013604839586446706324415722155397" +
        "53697817977846174064955149290862569321978468622482" +
        "83972241375657056057490261407972968652414535100474" +
        "82166370484403199890008895243450658541227588666881" +
        "16427171479924442928230863465674813919123162824586" +
        "17866458359124566529476545682848912883142607690042" +
        "24219022671055626321111109370544217506941658960408" +
        "07198403850962455444362981230987879927244284909188" +
        "84580156166097919133875499200524063689912560717606" +
        "05886116467109405077541002256983155200055935729725" +
        "71636269561882670428252483600823257530420752963450";

      var arr = str.split("");
      var arr1 = arr.map(function (value) {
        return parseInt(value);
      });
      var mul = [];
      for (var i = 0; i < arr1.length; i++) {
        if (arr1[i] == 0) {
          continue;
        }
        var num =
          arr1[i] *
          arr1[i + 1] *
          arr1[i + 2] *
          arr1[i + 3] *
          arr1[i + 4] *
          arr1[i + 5] *
          arr1[i + 6] *
          arr1[i + 7] *
          arr1[i + 8] *
          arr1[i + 9] *
          arr1[i + 10] *
          arr1[i + 11] *
          arr1[i + 12];
        mul.push(num);
        if (i === arr1.length - 13) {
          break;
        }
      }
      mul.sort(function (a, b) {
        return b - a;
      });
      return mul[0]
    }

第九题

function name() {
      let n = 1000;
      for (let i = 1; i < n - 1; i++) {
        for (let j = i + 1; j < n - i; j++) {
          let k = n - i - j;
          if (i + j + k == 1000 && i * i + j * j == k * k) {
            // console.log(i, j, k);
            return i,j,k
          }
        }
      }
    }

第十题

function name(num) {
      let sum = 0;
      for (let i = 2; i <= num; i++) {
        if (isPrime(i)) {
          sum += i;
        }
      }
      return sum;
    }

    console.log(name(2000000));

    function isPrime(n) {
      if (n == 2 || n == 3) {
        return true;
      }
      if (n % 2 == 0) {
        return false;
      }
      for (let i = 3; i <= Math.sqrt(n); i += 2) {
        if (n % i == 0) return false;
      }
      return true;
    }

持续更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值