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:
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.
It is easily seen that every factor of 36 on one side of the divide has a complementary factor on the other side.
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.
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.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.
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.
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);
}
}
}