Tengo el "ejercicio de Calcular el 10!(mod13)".
Tengo los dos métodos siguientes para resolver el ejercicio:
- Aproximación de fuerza bruta
1!≡1(mod13)2!=2⋅1!≡2⋅1≡2(mod13)3!=3⋅2!≡3⋅2≡6(mod13)⋯10!=10⋅9!≡10⋅11=110=8⋅13+6≡6(mod13)
- Enfoque el uso del teorema de Wilson:
Wilson del teorema de los estados que p∈P⟹(p−1)!≡−1(modp)
Para mi ejercicio: 13∈P\implica(13−1)!=12!=10!⋅11⋅12≡−1(mod13)\implica10!≡−(11⋅12)−1(mod13) El uso de Fermat poco teorema de ap≡(modp)\implicaunp−2⋅a⋅a≡a−1⋅a⋅a(modp)\implicaunp−2≡a−1(modp) Para mi ejercicio: De10! = -(11 \cdot 12)^{-1} \equiv \\ -(11 \cdot 12)^{13-2} = -(11 \cdot 12)^{11} \equiv \\ -(-2 \cdot -1)^{11} = -2^{11} = \\ -2^6 \cdot 2^5 \equiv 1 \cdot 2^5 = \\ 32 \equiv 6 \pmod{13} \\ $$
Ambos enfoques se ven muy voluminosos.
En el primer método que tengo que hacer la O(n) multiplicaciones.
En el segundo método que tengo que hacer la O(p−n) multiplicaciones que es menor que en el primer método, pero también puede ser enorme número de grandes pn.
Hay una manera para mejorar mi solución?
Es allí una manera eficiente para calcular el n!(modp) grande np?