Find the 10001st Prime Number

  • 时间:2020-09-10 12:55:33
  • 分类:网络文摘
  • 阅读:133 次

By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.
What is the 10001st prime number?

Test Prime Number

A prime number has exactly two factors: 1 and itself. Thus we can write a quick prime testing function. Please note that we only need to test up to Square Root of N, as if we find factor a, there will be N/a.

1
2
3
4
5
6
7
8
function isPrime(n) {
    if (n <= 1) return false;
    if (n == 2) return true;
    for (let i = 2; i * i <= n; ++ i) {
        if (n % i == 0) return false;
    }
    return true;
}
function isPrime(n) {
    if (n <= 1) return false;
    if (n == 2) return true;
    for (let i = 2; i * i <= n; ++ i) {
        if (n % i == 0) return false;
    }
    return true;
}

The runtime complexity is O(Sqrt(N)).

Find the N-th Prime Number

Then, we can then compute the N-th prime number using the following:

1
2
3
4
5
6
7
8
9
10
11
12
function findNthPrime(N) {
  let prime = 2;
  let i = 1;
  while (i < N) {
    do {
        prime ++;
    } while (!isPrime(prime));
    i ++;
  }
  return prime;
}
console.log(findNthPrime(10001));
function findNthPrime(N) {
  let prime = 2;
  let i = 1;
  while (i < N) {
    do {
        prime ++;
    } while (!isPrime(prime));
    i ++;
  }
  return prime;
}
console.log(findNthPrime(10001));

The answer is 104743.

We can improve a little bit, as we know that prime numbers cannot be even except 2, thus we can skip two intead of one.

1
2
3
4
5
6
7
8
9
10
11
12
13
function findNthPrime(N) {
    if (N == 1) return 2;
    if (N == 2) return 3;
    let prime = 3;
    let i = 2;
    while (i < N) {
      do {
          prime += 2;
      } while (!isPrime(prime));
      i ++;
    }
    return prime;
  }
function findNthPrime(N) {
    if (N == 1) return 2;
    if (N == 2) return 3;
    let prime = 3;
    let i = 2;
    while (i < N) {
      do {
          prime += 2;
      } while (!isPrime(prime));
      i ++;
    }
    return prime;
  }

–EOF (The Ultimate Computing & Technology Blog) —

推荐阅读:
Ways to Find Out if a Ghost Blogger is Right for You  Why You SHOULDN’T Use WordPress as Your Blogging Platform  How to Maximize Your Freelance Profits Using the Power of Emotio  What to Expect from Hiring Outsourced Content Writers  Call for Minimalism: How the New Wave of Blogging Platforms Give  3 Easy Ways to Improve Writing Skills  Explaining The Perfect Website Design to Non-Designers  Clear Skies Ahead – The Shift to Cloud Computing  Content Creation Versus Content Sharing  How Bloggers Can Help During Times of Tragedy 
评论列表
添加评论