查找第n个素数javascript

查找第n个素数javascript,javascript,Javascript,下面的函数应该是第n个素数。然而,它不断地吐出3。有人能帮忙吗?干杯,安东尼 function Prime(num) { output = true for (i=2 ; i<num ; i++) { if (num%i === 0) { output = false ; break } } return output } function PrimeMover(num) { var count = 0

下面的函数应该是第n个素数。然而,它不断地吐出3。有人能帮忙吗?干杯,安东尼

function Prime(num) {
output = true  
    for (i=2 ; i<num ; i++) {
        if (num%i === 0)  {
           output = false ; break
        }
    }
return output
}

function PrimeMover(num) {
var count = 0
    for (i=2 ; i<10000 ; i++)  {
        if (Prime(i) === true) {
            count = count + 1 
        }
        if (count === num) {
            return i
            break
        } 
    }
}
函数素数(num){
输出=真

对于(i=2;i您已经在
global scope
中创建了循环计数器
i
。因此
PrimeMover
Prime
都会变异相同的全局
i
。在每次迭代中,PrimeMover分配
i=2
。然后
Prime
分配
i=2
。您的
i
变量的值将在之间更改ode>2
3
。使用本地循环计数器变量
var i=0;

function Prime(num) {
output = true  
for (var i=2 ; i<num ; i++) { //var i=2
    if (num%i === 0)  {
       output = false ; break
    }
}
return output
}

function PrimeMover(num) {
var count = 0
for (var i=2 ; i<10000 ; i++)  { //var i=2
    if (Prime(i) === true) {
        count = count + 1 
    }
    if (count === num) {
        return i
        break
    } 
}
}
函数素数(num){
输出=真

对于(var i=2;i您已经在
全局范围
中创建了循环计数器
i
。因此
PrimeMover
Prime
都会对相同的全局
i
进行变异。在每次迭代中,PrimeMover分配
i=2
。然后
Prime
分配
i=2
。变量的值将在n
2
3
。使用局部循环计数器变量
var i=0;

function Prime(num) {
output = true  
for (var i=2 ; i<num ; i++) { //var i=2
    if (num%i === 0)  {
       output = false ; break
    }
}
return output
}

function PrimeMover(num) {
var count = 0
for (var i=2 ; i<10000 ; i++)  { //var i=2
    if (Prime(i) === true) {
        count = count + 1 
    }
    if (count === num) {
        return i
        break
    } 
}
}
函数素数(num){
输出=真

对于(var i=2;i而言,这可能更为理想

function nthPrime(n) {
    var P = 0;

    function isPrime(x) {
        var isPrime= true;

        for (var d = 2; d <= Math.sqrt(x); d++) {
            if((x/d) % 1 == 0) {
                isPrime = false;
                break;
            }
        }

        return isPrime;
    }

    for (var i = 1; 0 < n; i++) {

        if(isPrime(i)) {
            P = i; n--;
        }

        // we can skip the even numbers
        if(3 <= i){
            i++;
        }

    }

    return P;
}
函数n(n){
var P=0;
函数isPrime(x){
var isPrime=真;

对于(var d=2;d而言,这可能更为理想

function nthPrime(n) {
    var P = 0;

    function isPrime(x) {
        var isPrime= true;

        for (var d = 2; d <= Math.sqrt(x); d++) {
            if((x/d) % 1 == 0) {
                isPrime = false;
                break;
            }
        }

        return isPrime;
    }

    for (var i = 1; 0 < n; i++) {

        if(isPrime(i)) {
            P = i; n--;
        }

        // we can skip the even numbers
        if(3 <= i){
            i++;
        }

    }

    return P;
}
函数n(n){
var P=0;
函数isPrime(x){
var isPrime=真;
对于(var d=2;d
主功能(inp){
var计数=0;
对于(变量i=2;i
主功能(inp){
var计数=0;

对于(var i=2;i对于最小代码爱好者

函数n(n)
{
变量prime=[],i=1
而(i++&&prime.length(i%c)*a,2)和&prime.push(i)
返回prime.length?prime.pop():-1
}

[-1,0,1,2,3,5,10100].forEach(n=>console.log(`nthprime(${n})=${nthprime(n)}'))
,适用于最少量的代码爱好者

函数n(n)
{
变量prime=[],i=1
而(i++&&prime.length(i%c)*a,2)和&prime.push(i)
返回prime.length?prime.pop():-1
}
[-1,0,1,2,3,5,10100].forEach(n=>console.log(`nthprime(${n})=${nthprime(n}'))
const findprome=num=>{
设i,素数=[2,3],n=5
常量isPrime=n=>{
设i=1,p=primes[i],
limit=Math.ceil(Math.sqrt(n))
而(p
const findprome=num=>{
设i,素数=[2,3],n=5
常量isPrime=n=>{
设i=1,p=primes[i],
limit=Math.ceil(Math.sqrt(n))
而(p试试这个

var pos=10001;
控制台日志(primeNumforPos(pos));
功能primeNumforPos(pos){
var num=2,curPos=0;
而(curPos试试这个

var pos=10001;
控制台日志(primeNumforPos(pos));
功能primeNumforPos(pos){
var num=2,curPos=0;

while(curpos)你需要使用局部变量。否则,你所有的循环都会互相覆盖!看看我的素数编程界面:在这里,你可以用这样的代码做你想做的事情
var t=[],i=2,n=300;while(t.length
然后单击“执行”(outputs 1987)PS在上面的代码中键入10000,10000质素为104729。相关问题:需要使用本地变量。否则,所有循环将相互覆盖!请看我的素数编程接口:在这里,您可以使用这样的代码来完成您想要的代码,如
var t=[],i=2,n=300;while(t.length
然后只需单击“执行”(输出1987)PS在上面的代码中输入10000,第10000个素数是104729。相关问题:和@Joseph and Balaji,明白了。非常感谢。不要使用
输出
变量,你能不能在循环中简单地返回
,然后在最后返回
?我认为这会更容易。是的,这会更容易可以。但我试图解释代码中的错误。谢谢你的评论。:)另外,查找从2到num平方根的除数就足够了。在主fn中,如果i大于或等于3,你可以再次增加i(跳过偶数)…@Joseph和Balaji,明白了。非常感谢。与其使用
输出
变量,不如在循环中简单地返回
false
,然后在最后返回
true
?我想这会更容易。是的,这会更可读。但我正在试图解释代码中的错误。谢谢你的评论。:)同样,从2到除数的平方根就足够了,在你的主FN中,如果我是GRESH,或者等于3,你可以再次增加(跳过偶数)…好的答案,除了数学家从列表中排除1,并且把2看作最小的素数(你有代码> NthPrime(1)=1</代码>)很好的答案,除了数学家从列表中排除1,把2看成最小素数(你有代码> NthPrime(1)=1</代码>)。欢迎使用堆栈溢出!仅代码的答案没有特别的帮助。请添加一些关于此代码如何解决问题的说明。欢迎使用堆栈溢出!仅代码的答案没有特别的帮助。请添加一些关于此代码如何解决问题的说明。