在 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

相关文章