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.
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
{ classCheckPrime
{ privateint prime_suspect; // We suspect that this number is prime privatedouble 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
*/ publicbool verifyPrime()
{ /* Loop through searching for factors. */ for (int i = 2; i < prime_suspect; i++)
{ if ((prime_suspect % i) == 0)
{ returnfalse;
}
}
// If no factor is found: returntrue;
}
}
}
C# Code for Checking Prime - Main Class.
using System; using System.Collections.Generic;
namespace Arithmetic
{ classProgram
{ staticvoid 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
{ classCheckPrimeFast
{ privateint prime_suspect; // We suspect that this number is prime privatedouble square_root; // this variable is a helping one. privateint 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
*/ publicbool verifyPrime()
{ /* Loop through searching for factors. */ for (int i = 2; i < test_range; i++)
{ if ((prime_suspect % i) == 0)
{ returnfalse;
}
}
// If no factor is found: returntrue;
}
}
}
C# Code for Checking Prime Fast - Main Class.
using System;
namespace Arithmetic
{ classProgram
{ staticvoid 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.";
}