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







<< PreviousNext >>

How to Check for Prime Numbers using C#



The Intrique of Prime Numbers | Detailed Explanation for C# Kids

Prime numbers are tricky to spot.
A number that looks like a prime may in fact be a multiple of a smaller prime number.

In this math programming tutorial for kids, we explore how C# can be used to verify prime numbers efficiently.
So let's see how to know for sure that a number is a prime.
Of-course there is only one way:


Understanding Prime Number Logic in C#

A prime number is one that can only be divided by itself and one (1).

Let's try to draft a C# algorithm that checks prime numbers, with the number 97 in consideration.
To know for sure whether it is a prime number, we will recursively (repetitively) divide it by every number between 2 and 96 (97 minus 1).
If none of these divisors gives a remainder of zero, then 97 is certainly a prime number.


Create a new C# class file; Project, Add Class.
Call it CheckPrime.
Type out the adjoining C# code for checking for primeness.



Base Theory of Quick-Check for Primeness in C#

Since the world is always in a hurry, we can make use of a little extra speed.
This C# code example shows how to check if a number is prime using a fast algorithm based on complementary factors.

Consider the number 36; Its factors are:

1, 2, 3, 4, 6, 9, 12, 18 and 36.

Every factor of 36, when arranged in ascending or descending order, can be divided into 2 equal parts at the position of its square-root.

1, 2, 3, 4, |, 9, 12, 18, 36

It is easily seen that every factor of 36 on one side of the divide has a complementary factor on the other side.

Fast check for Prime numbers in C# using complementary factors
Figure: Complementary factors to expedient quick check for prime numbers in C#.

Hence, we can search for only a particular group of factors, (preferably the more compact group, i.e, between 1 and √36) to see if 36 has any factors.


A fast Check for Primeness in C#

So for our quick prime number check C# algorithm, we will use the range of 2 to √number.
Type out the adjoining C# code for fast prime number check.


Note: You can simply tweak the existing function from the previous exercise.
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 - Check Prime Number

As a fun practice exercise, feel free to try out your own numbers, and see how the C# code checks the numbers to ascertain which ones are prime numbers.







C# Code for Checking Prime class.

using System;

namespace Arithmetic
{
    class CheckPrime
    {
        private int prime_suspect; // We suspect that this number is prime
        private double square_root; // this variable is a helping one.

        public CheckPrime(int val)
        {
            // let's see whether prime_suspect is at a premium(is a prime).
            prime_suspect = val;
            square_root = Math.Sqrt(prime_suspect); // Get square root
        }

        /**
         * Does the actual evaluation to see if our number is prime.
         * @return boolean value
         */

        public bool verifyPrime()
        {
            /* Loop through searching for factors. */
            for (int i = 2; i < prime_suspect; i++)
            {
                if ((prime_suspect % i) == 0)
                {
                    return false;
                }
            }

            // If no factor is found:
            return true;
        }
    }
}

C# Code for Checking Prime - 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");

            /*
            * Test for the primeness of a number.
            */

            int test_guy = 97;
            CheckPrime prime_check = new CheckPrime(test_guy); // Is 97 is prime number?

            string result = "Prime State:\r\n";
            if (prime_check.verifyPrime())
            {
                result += test_guy + " is a prime number.";
            }
            else
            {
                result += test_guy + " is not a prime number.";
            }

            Console.WriteLine(result);

        }
    }
}

C# Code for Checking Prime Fast.

using System;

namespace Arithmetic
{
    class CheckPrimeFast
    {
        private int prime_suspect; // We suspect that this number is prime
        private double square_root; // this variable is a helping one.
        private int test_range; // range for minimal looping

        public CheckPrimeFast(int val)
        {
            // let's see whether prime_suspect is at a premium(is a prime).
            prime_suspect = val;
            square_root = Math.Sqrt(prime_suspect); // Get square root
            test_range = (int)Math.Ceiling(square_root); // Extract an absolute value
        }

        /**
         * Does the actual evaluation to see if our number is prime.
         * @return boolean value
         */

        public bool verifyPrime()
        {
            /* Loop through searching for factors. */
            for (int i = 2; i < test_range; i++)
            {
                if ((prime_suspect % i) == 0)
                {
                    return false;
                }
            }

            // If no factor is found:
            return true;
        }
    }
}

C# Code for Checking Prime Fast - Main Class.

using System;

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");

            /*
            * Test for the primeness of a number.
            */

            int test_guy = 97;
            CheckPrimeFast fast_check = new CheckPrimeFast(test_guy); // Is 97 is prime number?

            string result = "Prime State:\r\n";
            if (fast_check.verifyPrime())
            {
                result += test_guy + " is a prime number.";
            }
            else
            {
                result += test_guy + " is not a prime number.";
            }

            Console.WriteLine(result);

        }
    }
}



<< PreviousNext >>