我在寻找除法模数时被困在一个程序中。
比如说我有:
((a*b*c)/(d*e)) % n
现在,我不能简单地计算表达式,然后将其取模到 n,因为乘法和除法是在一个循环中进行的,并且该值足够大,即使是 long long 也不适合。
正如评论中所阐明的,n 可以被认为是素数。
我发现,对于乘法,我可以很容易地将其计算为:
((a%n*b%n)%n*c%n)%n
但当时不明白如何计算除法部分。
我面临的问题是一个简单的例子:
((7*3*5)/(5*3)) % 11
上述表达式的值为 7
但如果我计算乘法,模,它会像:
((7%11)*(3%11))%11 = 10
((10%11)*(5%11))%11 = 6
现在我只剩下 6/15,我无法生成正确的答案。
有人可以帮助我。请通过上面的例子让我理解逻辑。