题目:求出1000以内的所有“完全数”并输出它们(若n的包括1但不包括n本身的所有因子之和等于n,则n为“完全数”。例如6=1+2+3,28=1+2+4+7+14)。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>输出1000以内的完美数</div>
<script>
let num = 1; // 定义一个完美数
let sum = 0; // 定义完美数的和
while (num <= 1000) { // while 循环拿到1000以内的数字
for (let i = 0; i < num-1; i++) { // while一次循环内 num为定值(不变得值),拿这个定值去for循环,
if (num % i == 0) { //拿到num的因数i
sum = sum + i // 让因数求和
}
}
if (sum == num) { // 判断因数之和是否等于num这个完美数,如果等于就说明num是完美数,就打印出num
console.log(num);
}
sum = 0; // 注意: while每次循环要将sum清零赋值,如果不清零,sum在进入for循环的时候就会输入错误的sum值,这 // 里只要符合完美数的sum值
num++ // while 循环每次加1
}
</script>
</body>
</html>