在 JavaScript 中查找重复小数部分的长度
javascriptweb developmentfront end technology
问题
我们需要编写一个 JavaScript 函数,该函数将数字 num 作为第一个也是唯一的参数
我们的函数应该做两件事
- 首先,它应该检查数字是否与 10 互质,如果不是,我们应该返回 -1(如果它们唯一的共同因子是 1,则数字与任何其他数字互质)。
- 如果数字与 10 互质,那么当该数字整除 1 时,我们应该返回重复的小数部分的长度。
例如,如果函数的输入是 −
输入
const num = 123;
输出
const output = 5;
输出说明
因为 123 这个数字肯定和 10 是素数
而当我们用 1 除以 123 时,我们得到 −
1 / 123 = 0.008130081300813…
这清楚地表明小数部分 00813 被无限重复,其长度为 5,因此我们的输出为 5。
示例
以下是代码 −
const num = 123; const findRepeatingPart = (num = 1) => { if(num % 2 === 0 || num % 5 === 0){ return -1; } else { let res = 10 % num, count = 1; while(res != 1){ res = res * 10 % num; count++; }; return count; } }; console.log(findRepeatingPart(num));
输出
5