前面部分 都是 1
class Solution:
def minNonZeroProduct(self, p: int) -> int:
#
# (2^p - 2) ^(2^(p-1) - 1) * (2^p - 1)
mod = 10 ** 9 + 7
return pow(2 ** p - 2, 2 ** (p - 1) - 1, mod) * (2 ** p - 1) % mod
class Solution {
public:
long long fastPow(long long x, long long n, long long mod){
long long ret = 1;
for (; n != 0; n >>= 1){
if (n & 1){
ret = ret * x % mod;
}
x = x * x % mod;
}
return ret;
}
// 主模块
int minNonZeroProduct(int p) {
long long mod = 1e9 + 7;
long long x = fastPow(2, p, mod) - 1;
long long y = (long long) 1 << (p - 1);
return fastPow(x - 1,y - 1, mod) * x % mod;
}
};