求1000以内的水仙花数,为什么我的代码是错的?

<!DOCTYPE html>
<html lang="en">

<head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <script>
            for (i = 100; i < 1000; i++) {
                  if (i == (i % 10) * (i % 10) * (i % 10) + (((i - (i % 10)) / 10) % 10) * (((i - (i % 10)) / 10) %
                        10) * (((i - (i % 10)) / 10) % 10) + ((i - (i % 10) - (((i - (i % 10)) / 10) % 10)) / 100) * ((
                              i - (i % 10) - (((i - (i % 10)) / 10) % 10)) / 100) * ((i - (i % 10) - (((i - (i % 10)) /
                              10) % 10)) / 100)) {
                        document.write(i);
                  }

            }
      </script>
</head>

<body>

</body>

</html>

我的逻辑思维是:1:个位:i对10取余 的三次方

2:十位:i - 个位的数再除以10,得出来的数再对10取余

3:百位:i - 个位 - 十位,得出来的数再除以100

 

以上的逻辑思维都没有问题(虽然有点繁琐),为什么得出来的i只有一个数:407?

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    for(let i=100;i<=1000;i++){
        let ge=i%10;
        let shi=Math.floor(i/10%10);  // 向上取整(Math.floor)
        let bai=Math.floor(i/100);
        // 求次方(**)
        // 全等(===)
        if (i === (ge**3 + shi**3 + bai**3)){
            document.write(i,"\n");
        }
    }
</script>
</body>
</html>

你判断里面的条件语句可以给它优化一下,你这样写不利于检查错误,太过于杂乱