Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function getNext(x)
- {
- let vals = x.toString().split('');
- let total = 0;
- for (let i = 0; i < vals.length; i++)
- {
- total += Math.pow(vals[i], vals.length);
- }
- return total;
- }
- function runSequenceFrom(startVal)
- {
- let seq = [];
- let seqVals = new Set([]);
- let currentVal = startVal;
- while (!seqVals.has(currentVal))
- {
- seq.push(currentVal);
- seqVals.add(currentVal);
- currentVal = getNext(currentVal);
- }
- seq.push(currentVal);
- return seq;
- }
- function getLastSeqValFrom(x)
- {
- return runSequenceFrom(x).pop();
- }
- function main(max)
- {
- let totalEndingAt370 = 0;
- for (let i = 1; i < max; i++)
- {
- if (getLastSeqValFrom(i) === 370)
- {
- totalEndingAt370 += 1;
- }
- }
- return totalEndingAt370;
- }
- main(1000); // 529
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement