- 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
Prime Factorization
In this lesson you will learn how to factor a number into primes in C#, covering a number-theory algorithm built on loops. This is for anyone searching for "C# prime factorization implementation".
Prime factorization means expressing a number as a product of primes. Try dividing by 2, then 3, and so on; whenever a divisor works, keep dividing by it.
The sample code starts at d = 2 and, for as long as n divides by d, records it with factors.Add(d) and divides with n /= d; when it no longer divides, d increases by one. This repeats until n reaches 1.
A common stumbling block for beginners is the nested loop structure. The outer loop raises the divisor d while the inner loop keeps dividing for as long as it can - understanding that two-stage combination is the key.
It is an important idea spanning mathematics and computer science, and it underpins the security of cryptography such as RSA. Since 1 divides everything, it is excluded from prime factorization.
๐งช 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).
