Python Pronic Number Program

Beginner
6 min read
Updated: Oct 2026
2 programs
Live preview

What Is a Pronic Number?

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
nFormPronic?
123 × 4Yes
00 × 1Yes
93 × 3 (not consecutive)No
1—No

How to Check a Pronic Number in Python

Four clear steps — then reuse the helper to list pronic numbers in a range.

  1. If n < 0, return False (this tutorial uses non-negative n).
  2. Start k = 0.
  3. While k × (k + 1) ≤ n, if the product equals n, return True.
  4. If the product passes n with no match, return False.
MethodIdeaTimeBest for
Loop on kTry products until > nO(√n)Single check (default)
Range scanCall is_pronic for each valueO(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

Cheat Sheet

Keep these facts handy while writing the program.

TopicDetail
Definitionn = k × (k + 1) for integer k ≥ 0
Also calledOblong / rectangular numbers
0Pronic (0 × 1)
1 and 9Not pronic
EvennessFor k ≥ 1, product is always even
Classic checks12 yes; 20 yes; 9 no

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

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

Python 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.

python
def is_pronic(n: int) -> bool:
    if n < 0:
        return False

    k = 0
    while k * (k + 1) <= n:
        if k * (k + 1) == n:
            return True
        k += 1

    return False


number = 12
print(f"{number} is pronic" if is_pronic(number) else f"{number} is not pronic")

How It Works

  1. Negative values are rejected first.
  2. The loop grows k while k × (k + 1) stays ≤ n.
  3. Equality means two consecutive factors were found.
  4. If the product jumps past n, no match exists.
  5. 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.

python
def is_pronic(n: int) -> bool:
    if n < 0:
        return False

    k = 0
    while k * (k + 1) <= n:
        if k * (k + 1) == n:
            return True
        k += 1

    return False


start, end = 0, 30
print(f"Pronic numbers from {start} to {end}:")
for i in range(start, end + 1):
    if is_pronic(i):
        print(i, end=" ")
print()

How It Works

  1. Same is_pronic helper keeps the rule in one place.
  2. The outer loop visits every integer from start to end.
  3. Only values that pass the helper are printed.
  4. 0 is included because 0 × 1 = 0.
  5. For larger ranges, generate products directly with k += 1 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.

Large n

Python ints grow

Unlike fixed-width languages, k * (k + 1) stays exact for big values.

Negatives

Out of scope

This tutorial treats only non-negative inputs as candidates.

Time and Space Complexity

ProgramTimeExtra space
is_pronic (loop on k)O(√n)O(1)
Pronic in range 0..NO(N√N)O(1)

Because k × (k + 1) ≈ k², the loop stops near √n. Generating products with k += 1 is faster for long ranges.

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.

Next: Smith Number

Compare digit sums with prime-factor digit sums.

Smith number tutorial →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

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