for循环的应用—— 打印100以内的素数;打印1000以内的完数(一个数自身所有的因数相加等于它本身的数)

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>

运行结果:


猜你喜欢

转载自blog.csdn.net/qq_42062727/article/details/80182282