modułowe mnożenie dużych liczb w c ++

Mam trzy liczby całkowiteA, B (mniej niż 10 ^ 12) iC (mniej niż 10 ^ 15). Chcę obliczyć(A * B)% C. wiem to

(A * B) % C = ((A % C) * (B % C)) % C

ale powiedz czyA = B = 10 ^ 11 wtedy powyższe wyrażenie spowoduje przekroczenie liczby całkowitej. Czy jest jakieś proste rozwiązanie dla powyższego przypadku lub muszę użyć szybkich algorytmów mnożenia.

Jeśli muszę użyć szybkiego algorytmu mnożenia, to jaki algorytm powinienem użyć.

EDYTOWAĆ: Próbowałem powyżej problemuC ++ (co nie powoduje przepełnienia, nie wiem dlaczego), ale nie powinno być odpowiedzizero?

Z góry dziękuję.

questionAnswers(5)

yourAnswerToTheQuestion