usingMaths.com
From Theory to Practice - Math You Can Use.







<< PreviousNext >>

How to Code Prime Number Algorithms in C# - Fun Students Activity



Randomness of Prime Numbers | Maths Explanation for C# Kids

Prime numbers are natural numbers greater than 1 with no positive divisors other than 1 and itself. Prime numbers, in ascending order, are:

2, 3, 5, 7, 11, 13, 17, 19, 23, ...

Because prime numbers are so random in their progression, they are very difficult to predict as they get larger.
For the reason of their unpredictability, prime number are applied in

  • Cryptography: RSA encryption relies on large prime numbers.
  • Hashing: Prime numbers help reduce collisions in hash functions.
  • Data structures: Primes are used in sizing hash tables and optimizing algorithms.

In this beginner-friendly Maths C# tutorial for kids, we'll show how to list prime numbers in a fun and interactive way for STEM students.
Writing code in C# to list prime numbers will involve checking every number in a range of interest and gathering those that are without factors.


Logic for Determining Prime Numbers | Detailed Explanation for C# Kids

Say we want to implement a C# algorithm to list all prime numbers between 2 and 100 inclusive, we would start from 2; check to see whether it has any factors; keep it as a prime number if it has no factors; otherwise discard it.
We would then go to 3, and repeat the same process.
Repeat same for 4, 5, 6, 7, ..., 98, 99, 100.

But we can always use a few tricks for the C# algorithm...

We will take the following steps:
Step 1:

First, we'll start our range from 9 (keeping 2, 3, 5, and 7 as prime numbers).

Step 2:

Next, we'll only check through odd numbers.

Step 3:

Next, we'll check against the factors 2, 3, and 5.

Step 4:

Lastly, we'll check with a subset of smaller prime numbers that we'll gather as our check progresses.


Create a new C# class file; Project, Add Class.
Call it PrimeNumbers.

Type out the adjoining C# code for listing prime numbers.


Note: You can comment out the C# code for the main class from the previous lesson if you have been following.


So! C# Fun Practice Exercise - List Prime Numbers

As a fun practice exercise, feel free to try out your own boundary values, and see how the C# code lists the prime numbers between those boundary values.







C# Code for Prime Numbers class.

using System;
using System.Collections.Generic;

namespace Arithmetic
{
    class PrimeNumbers
    {
        private List<int> list_of_primes; // We will house our gathered prime numbers here.
        private int start; // Where to start.
        private int stop; // Where to stop.
        private int progress; // progress report
        private int index; // index into array list_of_primes
        private double square_root; // Our loop range for speed enhancement
        private bool do_next_iteration;

        public PrimeNumbers(int first, int last)
        {
            start = first;
            stop = last;
            // STEP 1:
            progress = 9;

            list_of_primes = new List<int>();
            list_of_primes.Add(2);
            list_of_primes.Add(3);
            list_of_primes.Add(5);
            list_of_primes.Add(7);

            square_root = 0;
        }

        /**
         * Garners the prime numbers between the requested range.
         *
         * @return String value
         */

        public List<int> getPrimes()
        {
            // STEP 2:
            for (; progress < stop; progress += 2)
            {
                do_next_iteration = false// a flag

                // STEPS 3, 4:
                // Check through already accumulated prime numbers
                // to see if any is a factor of "progress".
                square_root = (int)Math.Ceiling(Math.Sqrt(progress));

                index = 0;
                for (; list_of_primes[index] <= square_root; index++)
                {
                    if ((progress % list_of_primes[index]) == 0)
                    {
                        do_next_iteration = true;
                        break;
                    }
                }
                if (do_next_iteration)
                {
                    continue;
                }

                // if all checks are scaled,then "progress" is our guy.
                list_of_primes.Add(progress);
            }

            // Display result.
            return list_of_primes;
        }
    }
}

C# Code for Prime Numbers - Main Class.

using System;
using System.Collections.Generic;

namespace Arithmetic
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to our demonstration sequels");
            Console.WriteLine("Hope you enjoy (and follow) the lessons.");
            Console.WriteLine("\r\n");

            /*
            * List Prime Numbers.
             */

            int start = 1;
            int end = 100;
            List<int> answer;

            PrimeNumbers my_list = new PrimeNumbers(5, 500);
            answer = my_list.getPrimes();

            Console.WriteLine("Prime numbers between " + start + " and " + end + " are:");
            Console.WriteLine(String.Join(", ", answer));

        }
    }
}



<< PreviousNext >>