Here is a java code for long % int (long mod int)
long v = 51;
long result = v%(10^9 + 7);
what is result value. it may looks to be surprised that result is 25.
result is supported to be 51.
here is right way to go.
long v = 51;
long result = v%100000007L
int finalResult = (int) result;
Idea here is very clear that we convert long%int to be long%long and convert result to be int.