Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict';
  2.  
  3. const PE = require('../pe_helper');
  4.  
  5. const fib    = PE.fibonacci(24);
  6. const primes = PE.primeList(fib[24]);
  7.  
  8. const z_memo_map = new Uint32Array((fib[24] + 1) * primes.length);
  9.  
  10. function makeKey(n, k) {
  11.     return (fib[24] + 1) * k + n;
  12. }
  13.  
  14. for (let n = 0; n <= fib[24]; n++) {
  15.     for (let i = 0; i < primes.length; i++) {
  16.         let key = makeKey(n, i);
  17.         let p   = primes[i];
  18.  
  19.         if (n === 0) {
  20.             z_memo_map[key] = 1;
  21.             continue;
  22.         }
  23.  
  24.         if (p > n) {
  25.             if (i === 0) {
  26.                 z_memo_map[key] = 0;
  27.                 continue;
  28.             }
  29.  
  30.             z_memo_map[key] = z_memo_map[makeKey(n, i - 1)];
  31.             continue;
  32.         }
  33.  
  34.         if (i === 0) {
  35.             z_memo_map[key] = (p * z_memo_map[makeKey(n - p, i)]) % 1e9;
  36.             continue;
  37.         }
  38.  
  39.         z_memo_map[key] = (z_memo_map[makeKey(n - p, i)] * p + z_memo_map[makeKey(n, i - 1)]) % 1e9;
  40.     }
  41. }
  42.  
  43. let total = 0;
  44.  
  45. for (let i = 2; i < 25; i++) {
  46.     total += (z_memo_map[makeKey(fib[i], primes.length - 1)]) % 1e9;
  47. }
  48.  
  49. console.log(total % 1e9);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement