A modulo operator in c returns the remainder of a division, not a quotient. This program finds remainder without using the modulo (mod) operator.

We wrote the program using Turbo C++ 3.0 compiler installed on a Windows XP 32-bit system. You may use another standard C compiler of your choice. If you do, then make necessary changes to the program source code according to you compiler specifications.

You should be familiar with following c programming concepts before learning this program.

This program is a frequently asked question for aptitude tests and job interviews. So, you must try the write the program yourself and then compare your results with the solution given on this page.

## Problem Definition

The program receives an input number – *a divisor* and *a dividend*. The quotient of the division is easily obtained using the *divisio*n operator (/).

Now, you cannot use the modulo operator and have to find another way to find the remainder. You can do it in two steps listed below.

- Find an intermediate number by multiplying quotient * divisor.
- subtract the intermediate number from the dividend.

For example, divisor

\begin{aligned}& quotient = 53 / 10 = 3 \\ \\ &intermediate \hspace{2mm} number = 5 * 10 = 50\\ \\ &remainder = dividend - intermediate \hspace{2mm} number\\ \\ &remainder = 53 - 50 = 3 \end{aligned}

See the flowchart for this program given below to understand this logic.

## Flowchart – Remainder without Modulo Operation

## Program Code – Remainder without Modulo Operation

```
#include <stdio.h>
#include <conio.h>
void main()
{
int n1,n2,quotient,reminder;
clrscr();
printf("Enter two numbers:\n");
scanf("%d %d",&n1,&n2);
quotient = n1/n2;
reminder = n1 - quotient * n2;
printf("Remainder = %d\n",reminder);
getch();
}
```

## Output

The larger number 255 is the dividend, and the smaller number 33 is the divisor. The division does not return quotient, but the remainder 24.

```
Enter two numbers:255 33
Reminder = 24
```