collatz-utils
Version:
Utility functions for Collatz conjecture operations
30 lines (27 loc) • 629 B
JavaScript
const collatz = require("collatz-compute");
/**
* Returns how many steps it takes for `n` to reach 1 under Collatz rules.
*/
function collatzSteps(n) {
let steps = 0;
while (n !== 1) {
n = collatz(n);
steps++;
}
return steps;
}
/**
* Returns true if `n` is a valid candidate for Collatz sequence (i.e. not 1).
*/
function isCollatzCandidate(n) {
return n !== 1;
}
/**
* Applies the Collatz rule `count` times to `n`, and returns the result.
*/
function applyCollatzNTimes(n, count) {
while (count-- > 0) {
n = collatz(n);
}
return n;
}