- 01Getting Started
- 02Your First Output (Console.WriteLine)
- 03Working with Variables
- 04Conditionals (if statements)
- 05Loops (for statements)
- 06Writing a Method (Function)
- 07Working with Arrays
- 08Loops (while statements)
- 09Classes (Object-Oriented Programming)
- 10Error Handling (try-catch)
- 11Sorting an Array
- 12Recursive Functions
- 13Using the Standard Library
- 14The switch Statement
- 15The Ternary Operator
- 16Inheritance (Extending a Class)
- 17Writing Comments
- 18Logical Operators (&&, ||, !)
- 19Constants (const)
- 20Splitting and Joining Strings (Split, Join)
- 21Writing Null-Safe Code (the ?? operator)
- 22Searching an Array (Looking Through It in a Loop)
- 23Transforming an Array (LINQ Select)
- 24Two-Dimensional Arrays (Tabular Data)
- 25Writing a Custom Exception Class
- 26Default Parameter Values
- 27Working with HashSet (Sets)
- 28Checking Correctness (Your First Step into Testing)
- 29Higher-Order Functions (Passing a Function as an Argument)
- 30Stacks and Queues (Basic Data Structures)
- 31Type Conversion (Casting) Basics
- 32Intro to Regular Expressions (Pattern Matching)
- 33The Binary Search Algorithm
- 34Building a Caesar Cipher (a Character-Shifting Cipher)
- 35Understanding How Bubble Sort Works
- 36Building and Displaying Dates (Basic Year/Month/Day Operations)
- 37Writing Multiple Test Cases Together
- 38Speeding Up Calculations with Memoization (Caching)
- 39Normalizing Strings (Trim, Unifying Case)
- 40Shallow Copy vs. Deep Copy
- 41Enum (Enumerated Types) Basics
- 42Flattening an Array
- 43Reversing a String and Checking for Palindromes
- 44Pairing Up Two Arrays (the zip operation)
- 45Rounding Numbers (Floor, Ceiling, Round)
- 46Multi-Line Strings (Verbatim Strings)
- 47Functions That Return Multiple Values (Tuples)
- 48Finding the GCD and LCM (the Euclidean Algorithm)
- 49Formatting Numbers (Padding Digits, Decimal Places)
- 50Cleanup Logic with try/catch/finally
- 51Writing Generic Functions
- 52File Reading and Writing Basics
- 53Generating Random Numbers
- 54Bitwise Operators (AND, OR, XOR, shifts)
- 55Reading Command-Line Arguments
- 56Waiting for a Fixed Amount of Time (Thread.Sleep)
- 57Watch Out for Floating-Point Rounding Errors
- 58Reading from Standard Input
- 59FizzBuzz (the Classic Practice Problem)
- 60Checking Whether a Number Is Prime
- 61Set Operations with HashSet (Union, Intersection, Difference)
- 62Converting Number Bases (Binary, Hex)
- 63Checking Balanced Parentheses (an Application of Stacks)
- 64Checking Whether Two Words Are Anagrams
- 65Checking Whether a Year Is a Leap Year
- 66Converting Temperature (Celsius to Fahrenheit)
- 67Prime Factorization
- 68[Applied] Build a Simple Inventory Management Tool
Checking Whether a Number Is Prime
In this lesson you will learn how to test whether a number is prime in C#, covering a basic mathematical algorithm built on a loop. This is for anyone searching for "C# prime number check implementation".
To decide whether a number is prime (divisible only by 1 and itself), check whether it divides evenly by anything from 2 up to its square root. If nothing divides it, it is prime.
The sample code loops over the range for (int i = 2; i * i <= n; i++) and declares the number non-prime the moment it finds an i where n % i == 0. Stopping at the square root works because any larger divisor is always paired with a smaller one.
A common stumbling block for beginners is understanding why the square root is enough. Checking every number below n also gives the right answer, but narrowing the range cuts out wasted work and speeds things up.
This is an important mathematical property that also underpins cryptography, and there is a more advanced technique, the Sieve of Eratosthenes, for finding many primes efficiently at once.
๐งช This site can't compile or run C# directly, so it checks on the spot whether what you typed matches the reference code (scoring happens entirely in your browser โ nothing is sent anywhere).
