Before seeing the program please follow the previous program ** check pronic number**.

A number is said to be **a pronic number** if the number is the product of two consecutive integer numbers.

For example, if **we consider the number 72**, it is **the product of two consecutive integers 8 and 9**. Therefore, **72 is a pronic number**.

Now, if **we consider a number 16**, it is **the product of 2 and 8 or** **4 and 4** but **no one is the consecutive integers**. Therefore, **16 is not a pronic number**.

For this program, first, the ranges are taken as input. For each number between the ranges, a loop is executed from 1 to half of the number and if the number is the product of any two consecutive numbers then the number is displayed as output.

```
INPUT: The ranges
OUTPUT: Pronic numbers between the given ranges
PROCESS:
Step 1: [Taking the inputs]
Read m, n [The ranges]
Step 2: [Finding the pronic number]
For k=m to n repeat
For i=0 to k/2 repeat
If i×(i+1)=k then
Print k
[End of ‘if’]
[End of ‘for’ loop]
[End of ‘for’ loop]
Step 3: Stop.
```

for(j=m;j<=n;j++)----------------------------------------**O(p)**

{

if(j==0)------------------------------------------**O(1)**

printf("%d ",j);

//checking if the number is the product of

//two consecutive numbers

for(i=1;i<=j/2;i++)--------------------------**O(j)**

{

if(i*(i+1)==j)-----------------------**O(1)**

printf("%d ",j);

}

}

The time complexity of this program is **O(p*j)** where ‘p’ is the number between the ranges and ‘j’ is each number between the range that is to be checked for **pronic number**.

The **space complexity of this program** is **O(1)** as it requires a constant number of space to execute for any given range.