uint64_t
power(uint64_t a, uint64_t b, uint64_t c) {
59ans = ((ans % c) * (a % c)) % c;
63a = ((a % c) * (a % c)) % c;
76uint64_t inverse =
power(b, p - 2, p) % p;
78((a % p) * (inverse % p)) % p;
91assert(test_case_1 == 0);
92std::cout <<
"Test 1 Passed!"<< std::endl;
94assert(test_case_2 == 5);
95std::cout <<
"Test 2 Passed!"<< std::endl;
97assert(test_case_3 == 0);
98std::cout <<
"Test 3 Passed!"<< std::endl;
100assert(test_case_4 == 2);
101std::cout <<
"Test 4 Passed!"<< std::endl;
103assert(test_case_5 == 2);
104std::cout <<
"Test 5 Passed!"<< std::endl;
uint64_t power(uint64_t a, uint64_t b, uint64_t c)
This function calculates a raised to exponent b under modulo c using modular exponentiation.
uint64_t mod_division(uint64_t a, uint64_t b, uint64_t p)
This function calculates modular division.
int main()
Main function.
Functions for Modular Division implementation.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4