Javascript 素数检验的简单解释

Javascript 素数检验的简单解释,javascript,Javascript,我想有人给我解释一下,这个代码是如何工作的?因为我不能完全理解。 此代码在控制台中写入2和n之间的所有素数 let n = 10; nextPrime: for (let i = 2; i <= n; i++) { for (let j = 2; j < i; j++) { if (i % j == 0) continue nextPrime; } console.log(i); } 设n=10; 下一次: 对于(设i=2;i素数是一个可以被1和自身

我想有人给我解释一下,这个代码是如何工作的?因为我不能完全理解。 此代码在控制台中写入2和n之间的所有素数

let n = 10;

nextPrime:
for (let i = 2; i <= n; i++) {
   for (let j = 2; j < i; j++) {
      if (i % j == 0) continue nextPrime;
   }
   console.log(i);
}
设n=10;
下一次:

对于(设i=2;i素数是一个可以被1和自身除的数,并且没有其他除数


此代码在
上循环,此处内部for循环的功能是检查i的当前值是否为素数。
现在,内部循环将如何做到这一点?请参阅基本定义,如果一个数字只能被1整除,那么它本身就是素数。但这里“j”的值从2开始,一直到小于该数字。因此,如果“i”可以被任何其他数整除,那么条件(i%j==0)将变为真,并将执行在该块中编写的代码。
其中写入的代码是
continue nexttime
,它将再次将程序的执行重定向到写入
nexttime
关键字的位置。因此
console.log(i)
语句将不会针对该值i执行。

如果条件不为真(表示它为素数时)然后它执行最后一行,这将打印该编号。

请解释您确实理解代码的哪些部分。语法有问题吗?算法有问题吗?这是实际代码吗?下一次是什么?我看不到它的定义anywhere@sagar1025
nexttime:
是外部的标签loop@sagar1025那是个好主意循环标签,很少使用的JavaScript特性。在这种情况下,两个“for”循环如何工作?
for (let i = 2; i <= n; i++) {
   for (let j = 2; j < i; j++) {
i = 3, j = 2
i = 4, j = 2
i = 4, j = 3
i = 5, j = 2
i = 5, j = 3
i = 5, j = 4