📅  最后修改于: 2023-12-03 15:31:48.471000             🧑  作者: Mango
本文将介绍使用JavaScript编写的程序,该程序可以以一定的时间间隔打印出所有的素数。素数是指只能被1和自身整除的正整数。该程序包含以下内容:
对于打印出所有素数的需求,最直观的方式是从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个素数。