809 B
809 B
howManyTimes
Returns the number of times num can be divided by divisor (integer or fractional) without getting a fractional answer.
Works for both negative and positive integers.
If divisor is -1 or 1 return Infinity.
If divisor is -0 or 0 return 0.
Otherwise, keep dividing num with divisor and incrementing i, while the result is an integer.
Return the number of times the loop was executed, i.
const howManyTimes = (num, divisor) => {
if (divisor === 1 || divisor === -1) return Infinity;
if (divisor === 0) return 0;
let i = 0;
while (Number.isInteger(num / divisor)) {
i++;
num = num / divisor;
}
return i;
};
howManyTimes(100, 2); // 2
howManyTimes(100, 2.5); // 2
howManyTimes(100, 0); // 0
howManyTimes(100, -1); // Infinity