急求!!!计算机JAVASCRIPT编程代码!!!题目为求[100,200]之间第一个能被21整除的整数!

还有一个是若一个数等于它的真因子之和,则该数称为完成。如6=1+2+3,所以6是完成。编程!求[1,500]之间的全部完成!!

第一个:
for(var i = 100,i<=200,++i){
if(i%21 === 0){
alert(i);
break;
}
}
第二题
首先这种数不是叫完成,而是叫完数,英文perfectnumber(完美数)
//用来判断数字是不是完数的函数:
function is_perfect_number(num){
var sum = 0;
for(var i=1;i<num;++i){
if (num%i == 0) {
sum += i;
}
}
return sum == num;
}
//初始化一个空数组,用来保存结果
var result = [];
for(var i=1;i<=500;++i){
//如果是完数就放进数组里
if (is_perfect_number(i)) {
result.push(i);
}
}
//输出结果
alert(result);

上面的方法是用的最笨的方法求的,你可以去搜索一下完数的性质,利用性质可以写出更简单的算法来求完数
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-11
<html>
<head>
<SCRIPT type="text/javascript">
//第一个能被21整除的整数
var minNum = 100;
var maxNum = 200;
function Calculate(){
if(minNum % 21 !=0 && minNum<maxNum){
minNum++;
Calculate(minNum);
}else{
document.write("第一个能被21整除的整数: "+minNum);
}
}
Calculate();

//符合条件完全数:
var minFac = 1;
var maxFac = 500;
function facSum(val){
var sum = 0, i;
for(i=minFac; i<val; i++)
if(val%i == 0)
sum += i;
return sum;
}

var i;
var html="";
document.write("<br/>符合条件完全数有: ");

for(i=2; i<maxFac; i+=2)
{
if(i==facSum(i))
{
html +=i+",";
}
}
html = html.substring(0,html.length-1);
document.write(html);
</SCRIPT>
</head>
<body >
</body>
</html>