//一个数如果恰好等于它的因子之和,这个数成为完数,例如6=1+2+3,找出1000以内所有的完数,并输出该完数所有的因子
n = 1000
// 输出因子:
function f1(num) {
var num1 = num
li = [ '1' ]
var i = 1
while (i < num1) {
i += 1
if (num1 % i == 0 && i < num1) {
li.push(i)
}
}
if(eval(li.join('+')) == num1) {
console.log(num+'的因子是:'+li.join(','), '\n')
console.log('--------------------------------------')
}
}
//求完数
function compNumber(n) {
for (var i = 0; i < n + 1; i++) {
var sum = 0;
for (var j = 1; j < parseInt(i / 2 + 1); j++) {
if (i % j == 0) {
sum += j
if (sum == i) {
//console.log(n1+'以内的完数为:'+i,'\n')
f1(i)
}
}
}
}
}
compNumber(n)
一个数如果恰好等于它的因子之和,这个数成为完数,判断1000以内的完数和输出因子
最新推荐文章于 2022-06-16 10:16:08 发布