A pronic number (also called oblong or rectangular) is the product of two consecutive integers:
Remember
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 is_pronic for each value
O(N√N)
Listing pronic 0..N
Pseudocode
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.
Whole numbers only. Tap a chip or type a value.
Result
n = 12
Try k = 0, 1, 2, 3, ...
3 × 4 = 12
12 is pronic
Trace
Worked Walkthrough — n = 12
Try consecutive products until one matches or passes 12.
Calculation
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 is_pronic helper. Then print every pronic number in a small range with the same helper.
Example 1 — is_pronic Check
Return true when some consecutive product equals n.
C
#include <stdio.h>
int is_pronic(int n)
{
long k;
if (n < 0)
return 0;
for (k = 0; k * (k + 1) <= n; k++)
{
if (k * (k + 1) == n)
return 1;
}
return 0;
}
int main(void)
{
int number = 12;
if (is_pronic(number))
printf("%d is pronic\n", number);
else
printf("%d is not pronic\n", number);
return 0;
}
Output
12 is 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 is_pronic to print every pronic value from 0 to 30.
C
#include <stdio.h>
int is_pronic(int n)
{
long k;
if (n < 0)
return 0;
for (k = 0; k * (k + 1) <= n; k++)
{
if (k * (k + 1) == n)
return 1;
}
return 0;
}
int main(void)
{
int start = 0;
int end = 30;
int i;
printf("Pronic numbers from %d to %d:\n", start, end);
for (i = start; i <= end; i++)
{
if (is_pronic(i))
printf("%d ", i);
}
printf("\n");
return 0;
}
Output
Pronic numbers from 0 to 30:
0 2 6 12 20 30
How It Works
Same is_pronic 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.
0
Zero is pronic
0 × 1 = 0 — do not reject zero by habit.
Squares
Not the same
9 = 3 × 3 is a square, not consecutive factors.
Overflow
Watch large k
For big n, prefer long so k * (k + 1) does not wrap.
Negatives
Out of scope
This tutorial treats only non-negative inputs as candidates.
Analysis
Time and Space Complexity
Program
Time
Extra space
is_pronic (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.