javascript - ¿Cómo puedo encontrar el primer número mayor que la constante M?

CorePress2024-01-25  14

Tengo un problema con esto. Tengo que encontrar el primer número primo mayor que mi constante M. Por ejemplo, tengo M = 11 y tengo que encontrar el primer número primo mayor que M y es 13. ¿Cómo puedo hacer eso?

// es Prime

const M = 11

function isPrime(num) {
  if (num < 2) return false;
  for (let i = 2; i < num; i++) {
    if (num % i == 0) return false;
  }
  return true;
}

console.log(isPrime(M))

Y me gustaría encontrar para M = 11, número primo = 13, para M = 15, número primo = 17, etc.

¿Qué has probado hasta ahora? Agregue algún código de muestra suyo si ha probado algo.

- Md Sabbir Alam

28/03/2021 a las 11:00

1

¿Cómo puedo encontrar el primer número mayor que la constante M? M+1

-connexo

10 de octubre de 2021 a las 22:48



------------------------------------

Puedes iterar desde M+1 hasta encontrar tu número primo. Puedes hacer lo siguiente,

function isPrime(num) {
    if (num < 2) return false;
    for (let i = 2; i < num; i++) {
        if (num % i == 0) return false;
    }
    return true;
}

findGreaterPrime = (m) => {
  let i = m+1;
  let found = false;
  while(!found) {
    if(isPrime(i)) {
      found = true;
      return i;
    }
    i++;
  }
}

console.log(findGreaterPrime(11));
console.log(findGreaterPrime(13));

Por cierto, este método será muy lento para números grandes. Puedes utilizar algunos generadores primarios rápidos. Puedes seguir las respuestas en este hilo.

0



------------------------------------

Solución sencilla y rápida, a través de prime-lib (soy el autor).

El siguiente ejemplo genera 2 números primos, comenzando con 7 en adelante:

import {generatePrimes, stopOnCount} from 'prime-lib';

const i = generatePrimes({start: 7}); // infinite prime-iterator
const s = stopOnCount(i, 2); // stop-iterator

const values = [...s]; // 7, 11

Comprueba si el inicio es un número primo para incluirlo en ese momento. Si solo necesitas un número primo que sigue, simplemente verifica si el primer número coincide con tu número M y luego toma el siguiente:

if(values[0] === M) {
   // use values[1]
} else {
   // use values[0]
}

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare