C# Pronic Number Program
Definition
What Is a Pronic Number?
A pronic number (also called oblong or rectangular) is the product of two consecutive integers:
n = k × (k + 1) for some integer k ≥ 0
Examples: 0, 2, 6, 12, 20, 30, 42, ...
12 = 3 × 4
20 = 4 × 5
| n | Form | Pronic? |
|---|
12 | 3 × 4 | Yes |
0 | 0 × 1 | Yes |
9 | 3 × 3 (not consecutive) | No |
1 | — | No |
Approach
How to Check a Pronic Number in C#
Four clear steps — then reuse the helper to list pronic numbers in a range.
- If
n < 0, return false (this tutorial uses non-negative n). - Start
k = 0. - While
k × (k + 1) ≤ n, if the product equals n, return true. - If the product passes
n with no match, return false.
| Method | Idea | Time | Best for |
|---|
| Loop on k | Try products until > n | O(√n) | Single check (default) |
| Range scan | Call IsPronic for each value | O(N√N) | Listing pronic 0..N |
Pseudocode
function IsPronic(n):
if n < 0: return false
k = 0
while k * (k + 1) <= n:
if k * (k + 1) == n:
return true
k = k + 1
return false
Reference
Cheat Sheet
Keep these facts handy while writing the program.
| Topic | Detail |
|---|
| Definition | n = k × (k + 1) for integer k ≥ 0 |
| Also called | Oblong / rectangular numbers |
| 0 | Pronic (0 × 1) |
| 1 and 9 | Not pronic |
| Evenness | For k ≥ 1, product is always even |
| Classic checks | 12 yes; 20 yes; 9 no |
Try it
Live Preview
Enter an integer to try consecutive products until they pass n.
Trace
Worked Walkthrough — n = 12
Try consecutive products until one matches or passes 12.
k = 0 → 0 × 1 = 0
k = 1 → 1 × 2 = 2
k = 2 → 2 × 3 = 6
k = 3 → 3 × 4 = 12 ✓ match
12 is pronic
Counterexample n = 9:
k = 2 → 6
k = 3 → 12 (> 9) → no match → not pronic
Code
C# Programs
Start with a reusable IsPronic helper. Then print every pronic number in a small range with the same helper.
Example 1 — IsPronic Check
Return true when some consecutive product equals n.
using System;
class Program
{
static bool IsPronic(int n)
{
if (n < 0)
{
return false;
}
for (int k = 0; k * (k + 1) <= n; k++)
{
if (k * (k + 1) == n)
{
return true;
}
}
return false;
}
static void Main()
{
int number = 12;
Console.WriteLine(number + (IsPronic(number) ? " is pronic" : " is not pronic"));
}
}
How It Works
- Negative values are rejected first.
- The loop grows
k while k × (k + 1) stays ≤ n. - Equality means two consecutive factors were found.
- If the product jumps past
n, no match exists. - For
12, k = 3 gives 3 × 4, so the answer is true.
Example 2 — Pronic Numbers in a Range
Reuse IsPronic to print every pronic value from 0 to 30.
using System;
class Program
{
static bool IsPronic(int n)
{
if (n < 0)
{
return false;
}
for (int k = 0; k * (k + 1) <= n; k++)
{
if (k * (k + 1) == n)
{
return true;
}
}
return false;
}
static void Main()
{
int start = 0;
int end = 30;
Console.WriteLine("Pronic numbers from " + start + " to " + end + ":");
for (int i = start; i <= end; i++)
{
if (IsPronic(i))
{
Console.Write(i + " ");
}
}
Console.WriteLine();
}
}
Pronic numbers from 0 to 30:
0 2 6 12 20 30
How It Works
- Same
IsPronic helper keeps the rule in one place. - The outer loop visits every integer from
start to end. - Only values that pass the helper are printed.
0 is included because 0 × 1 = 0.- For larger ranges, generate products directly with
k++ instead of scanning every i.
Edge Cases & Pitfalls
Check these before calling the solution done.
0Zero is pronic
0 × 1 = 0 — do not reject zero by habit.
SquaresNot the same
9 = 3 × 3 is a square, not consecutive factors.
OverflowWatch large k
For big n, prefer long so k * (k + 1) does not wrap.
NegativesOut of scope
This tutorial treats only non-negative inputs as candidates.
Analysis
Time and Space Complexity
| Program | Time | Extra space |
|---|
| IsPronic (loop on k) | O(√n) | O(1) |
| Pronic in range 0..N | O(N√N) | O(1) |
Because k × (k + 1) ≈ k², the loop stops near √n. Generating products with k++ is faster for long ranges.
Remember
Key Takeaways
Definition: n = k × (k + 1) for some integer k ≥ 0.
Check: try products until they pass n.
Facts: 0 is pronic; squares like 9 are not automatically pronic.
Test set: 12 → yes; 20 → yes; 9 → no; 1 → no.
One line: if some consecutive pair multiplies to n, n is pronic.
Frequently Asked Questions
A pronic number equals k × (k + 1) for some integer k ≥ 0. Examples: 0, 2, 6, 12, 20, 30.
Yes. 0 = 0 × 1.
No. No integer k satisfies k × (k + 1) = 1.
Among any two consecutive integers, one is even, so their product is even.
A loop that tries k while k × (k + 1) ≤ n runs in O(√n) time and O(1) extra space.
About the author
Developer, cloud engineer, and technical writer
I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.
10 people found this page helpful