1> 打印100以内的素数:
<script>
var i ,j;
for(i = 2;i <= 100;i ++){
var count = 0; //这一步非常重要!每次内循环后归零重新开始
for(j = 1;j <= i/2;j ++){
if(i % j == 0){
count ++;
}
}
if(count > 1){continue;} //count > 1时不符合,跳出本次循环,进行下一轮循环。
else{ // count == 1时才符合条件,因为素数只能整除 1 和它本身,而j <= i/2
console.log(i);
}
}
</script>
运行结果:
2> 打印1000以内的完数(如:6 的因数有:1、 2、 3; 6 = 1 +2+3;6就是完数!)
代码如下:
<script>
var i, j, k;
for(i = 5;i <= 1000;i ++){
var sum = 0; //每次循环结束sum 变为0,进行下一次循环。
for(j = 1;j <= i/2;j ++){
if(i % j == 0){
sum += j; //每个因数相加,用sum 来接收结果
}
}
if(sum == i){ //判断完数!
console.log('这是个完数!:',i);
for(k = 1;k <= i/2;k ++){
if(i % k == 0){
console.log(k+' '); // 打印完数的所有因子!
}
}
}
}
</script>
运行结果: