TEST(CoprimeTest, EulerTheorem) { constexpr int64_t n = 123645; auto coprimes = getCoprimes(n); int64_t phiOfN = coprimes.size(); using ResidueModuloN = Residue<int64_t, n>; for (auto a : coprimes) EXPECT_EQ(ResidueModuloN(1), quick_power(ResidueModuloN(a), phiOfN)); }
void solve(std::istream &in, std::ostream &out) { int n; in >> n; ll mod = 1e9 + 7; out << (quick_power(2, n - 1, 1e9 + 7) - 1 + mod) % mod << endl; }