Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function getNext(x)
  2. {
  3.     let vals = x.toString().split('');
  4.     let total = 0;
  5.     for (let i = 0; i < vals.length; i++)
  6.     {
  7.         total += Math.pow(vals[i], vals.length);
  8.     }
  9.     return total;
  10. }
  11.  
  12. function runSequenceFrom(startVal)
  13. {
  14.     let seq = [];
  15.     let seqVals = new Set([]);
  16.     let currentVal = startVal;
  17.  
  18.     while (!seqVals.has(currentVal))
  19.     {
  20.         seq.push(currentVal);
  21.         seqVals.add(currentVal);
  22.         currentVal = getNext(currentVal);
  23.     }
  24.  
  25.     seq.push(currentVal);
  26.     return seq;
  27. }
  28.  
  29. function getLastSeqValFrom(x)
  30. {
  31.   return runSequenceFrom(x).pop();
  32. }
  33.  
  34. function main(max)
  35. {
  36.     let totalEndingAt370 = 0;
  37.  
  38.     for (let i = 1; i < max; i++)
  39.     {
  40.         if (getLastSeqValFrom(i) === 370)
  41.         {
  42.             totalEndingAt370 += 1;
  43.         }
  44.     }
  45.  
  46.     return totalEndingAt370;
  47. }
  48.  
  49. main(1000); // 529
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement