I am new in programming. Now I am trying to find remainder without using modulus operator. Can anyone help me?

If you can use the integer division operator, you could use

```
mod(x,y) = (x - y*(x/y))
```

divide and then subtract the multiple

#include<stdio.h>

main()

{

int n,i,k;

float j,rem,a=9,b=10,c=1;

printf(“enter the dividend and divisor”);

scanf("%d%d",&n,&i);

j=(float)n/i;

rem=(j-n/i)*i;

k =((j-n/i)*i);

if(rem>k && rem<k+1 && rem>(float)k+(a/b))

rem=k+1;

else if(rem>k && rem<(float)k+(c/b))

rem=k;

printf(“remainder=%f”,rem);

getch();

}

The straight forward way is to use division and multiplication and get y%x = y - x*(y/x)

But I guess restriction % should also not allow / and * operators. So to go with just the bitwise operators you can do the following. Calculate x<<i till it is lower than or equal to y and subtract from highest value of x<<i to lowest ie x if you can from y iteratively.

```
int p = x;
while(p<y) p<<=1;
while(p>=x) {
if(y>=p)y-=p; p>>=1;
}
return y;
```