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>
运行结果: