// https://projecteuler.net/problem=7
// My approach does not use the Sieve of Eratosthenes but that is another common way to approach this problem. Sieve of Atkin is another possibility as well.

const num = 10001
const primes = [2, 3, 5, 7, 11, 13] // given list of primes you start with

const calculatePrime = (num) => {
  // Calculate each next prime by checking each number to see what it's divisible by
  let count = primes.length // count number of primes calculated
  let current = primes[count - 1] + 1 // current number being assessed if prime
  while (count < num) { // repeat while we haven't reached goal number of primes
    // go through each prime and see if divisible by the previous primes
    let prime = false
    primes.some((n, i) => {
      if (current % n === 0) {
        return true
      }
      if (i === count - 1) {
        prime = true
      }
    })
    if (prime) { // if prime, add to prime list and increment count
      primes.push(current)
      count += 1
    }
    current += 1
  }
  return primes[num - 1]
}

console.log(calculatePrime(num))

Problem7