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 \(a\) and \(b\) such that \( a \times b = 3 \), other than 1 and 3. On the other hand, 4 is not a prime number because \( 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.

print( isPrime(3) );
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.

var sum = 0;

// Iterate from i=2 to i=100
for (var i = 2; i <= 100; i++){
	// Check to see if i is prime...
	if (isPrime(i)) {
		// If so, add it to the sum.
		sum = sum + i;
	}
}

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.

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.

var primes = [], composites = [];

for (var i = 0; i < a.length; i++) {
	// YOUR CODE HERE
}

print(`Primes: ${primes}`);
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.

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.

function isPrime2(n) {
	// YOUR CODE HERE
	return false;
}

print( isPrime2(3) );
print( isPrime2(4) );