Prime Numbers

A prime number is a whole number that cannot be factored into two other whole numbers that are less than the number. In other words, a whole number is prime if the only other whole numbers that divide it are 1 and itself.

As an example, 3 is a prime number - there are no numbers aa and bb such that a×b=3 a \times b = 3 , other than 1 and 3. On the other hand, 4 is not a prime number because 2×2=4 2 \times 2 = 4 . Whole numbers that are not prime are called composite numbers. On your own, try to think of 5 prime numbers and 5 composite numbers.

We have defined a isPrime() function that will test whether or not a whole number is prime. It will return true if the number is prime, and false otherwise. So for example, isPrime(3) will return true but isPrime(4) will return false.

  1. print( isPrime(3) );
  2. print( isPrime(4) );

This isPrime() function allows us to do some fun investigating with prime numbers! Instead of doing a bunch of computations, we can let the computer do that - while we make sense of the results! Let's check out an example.

Suppose we want to add together all of the prime numbers between 2 and 100. That would be a lot of work for us to do on paper, but the computer can do it in a fraction of a second! The code below shows this being done.

  1. var sum = 0;
  2. // Iterate from i=2 to i=100
  3. for (var i = 2; i <= 100; i++){
  4. // Check to see if i is prime...
  5. if (isPrime(i)) {
  6. // If so, add it to the sum.
  7. sum = sum + i;
  8. }
  9. }
  10. print(`Sum: ${sum}`);

In Line (1) we create a variable sum and set its value to 0 - we will use this to keep track of the sum of the prime numbers. Then on Line (4) we start a for-loop and loop from i = 2 to i = 100, in increments of 1. For each value of i between 2 and 100, we will check to see if it is prime [Line (6)] and if so, we will add this value to our sum variable [Line (8)]. In Line (12) we print the sum. Here's the neat thing: on Line (4), change to 100 to a much bigger number, like 10000. This will tell the computer to compute the sum of all prime numbers between 2 and 10000 - and it can do this very quickly!

Activities

Activity: Counting primes

Use the editor below to determine the number of prime numbers less than 1,000. You might want to use a loop similar to the one presented in the previous code snippet.

  1. print("Your code here.");

Activity: Sorting based on primality

An array a of random whole numbers between 2 and 100 has been defined behind the scenes. Sort the elements of a into two arrays based on whether or not they are prime. We've started you off with a little code.

  1. var primes = [], composites = [];
  2. for (var i = 0; i < a.length; i++) {
  3. // YOUR CODE HERE
  4. }
  5. print(`Primes: ${primes}`);
  6. print(`Composites: ${composites}`);

Challenge Activity: Sum of the first 100 primes

Use the editor below to determine the sum of the first 100 primes. Hint: this is different than computing the sum of all prime numbers less than or equal to 100.

  1. print("Your code here.");

If done correctly, you should get a value of 24133. After doing that, find the sum of the first 1000 prime numbers.

Challenge Activity: Defining the isPrime function

We have been using an isPrime() function, which is defined behind the scenes. However, we actually wrote the code for that function - and you can too! In the editor below, create a function isPrime2() that determines whether or not a number is prime. The function should return true if the number is prime, and false otherwise.

  1. function isPrime2(n) {
  2. // YOUR CODE HERE
  3. return false;
  4. }
  5. print( isPrime2(3) );
  6. print( isPrime2(4) );