#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll mod = 1e9+7;
ll power(ll a, ll b)
{
ll res = 1;
while(b)
{
if(b & 1) res = res * a % mod;
b >>= 1;
a = a * a % mod;
}
return res;
}
ll inv(ll x)//求逆元
{
return power(x, mod - 2); //结合求逆元的博客 易懂 x的p-2次方就是 x的逆元
}
ll a[100010], b[100010];
int main()
{
ll n, k, i, j;
cin >> n;
for(i = 0; i < n; i++)cin >> a[i];
for(i = 0; i < n; i++)cin >> b[i];
ll res = 1;
for(i=0; i < n; i++)
{
res = res * (a[i] - b[i]) % mod * inv(a[i]) % mod;
}
cout << (mod + (1 - res)) % mod;// 1-res 是负数的话 +mod 变成正数 然后取模 (~浅显易懂)哈哈
// 前边的计算 一直在 %mod 所以数据一直在 小于mod 的 范围内
}
逆元的题
猜你喜欢
转载自blog.csdn.net/cosx_/article/details/109787845
今日推荐
周排行