I want to calculate this :

```
( (a*b) / g ) %MOD
```

where MOD is 10^9+7

Is the following way correct way to do it in code?

`long long a, b, g; //assume value is already there. And a,b,g are not >mod long long res = a*b % mod; long long int inverse = inv(g); maxlen = res/inverse;`

Where inv function is as below:

```
#define ull unsigned long long
long long int inv(long long int a) {
return pow_(a,mod-2,mod);
}
```

And pow function is

`#define mod 1000000007 long long int pow_(long long int base,long long int exp,long long int m) { long long int ret=1; base%=m; while(exp) { if(exp&1) { ret*=base; ret%=m; } base*=base; base%=m; exp>>=1; } return ret%m; }`

If the functions are wrong, Could anyone please provide me with a function that provides correct result?