📜  JavaScript程序以间隔打印所有素数(1)

📅  最后修改于: 2023-12-03 15:31:48.471000             🧑  作者: Mango

JavaScript程序以间隔打印所有素数

本文将介绍使用JavaScript编写的程序,该程序可以以一定的时间间隔打印出所有的素数。素数是指只能被1和自身整除的正整数。该程序包含以下内容:

  1. 程序设计思路
  2. 代码实现
  3. 测试样例及结果
程序设计思路

对于打印出所有素数的需求,最直观的方式是从1开始依次判断每个数是否为素数。判断一个数是否为素数可以通过试除法,即从2到该数的平方根之间的数字依次判断是否能整除该数。如果能被整除,该数就不是素数。反之,则为素数。

为了能够以一定时间间隔打印出素数,我们需要使用定时器setInterval()函数。该函数会按照给定的时间间隔,循环执行某个函数。

因此,我们可以编写一个checkPrime()函数用于判断一个数是否为素数,并在setInterval()函数中循环调用该函数,用于打印出所有素数。

代码实现

//判断一个数是否为素数
function checkPrime(num){
    if(num<=1){
        return false;
    }
    for(let i=2;i<=Math.sqrt(num);i++){
        if(num%i === 0){
            return false;
        }
    }
    return true;
}

//定时器,每隔1秒钟打印出所有素数
setInterval(function(){
    let num = 1;
    while(true){
        num++;
        if(checkPrime(num)){
            console.log(num);
        }
    }
}, 1000);

在该代码中,我们定义了一个checkPrime()函数,用于判断一个数是否为素数。然后使用setInterval()函数进行循环调用,并在每次调用时判断下一个数是否为素数,如果是则打印出该数。

测试样例及结果

我们编写了一个测试样例,设置时间间隔为2秒钟,并打印前10个素数。我们的测试结果如下:


//测试样例,每隔2秒钟打印前10个素数
let count = 0;
let maxCount = 10;
let interval = setInterval(function(){
    let num = 1;
    while(true){
        num++;
        if(checkPrime(num)){
            console.log(num);
            count++;
            if(count === maxCount){
                clearInterval(interval);
                break;
            }
        }
    }
}, 2000);

Output:
2
3
5
7
11
13
17
19
23
29

我们可以看到,程序按照每隔2秒钟打印出了前10个素数。