μλ νμ΄μ μ€λ₯ λ±μ μ°Ύμμ κ²½μ° λμ€μ½λ 0prime0μΌλ‘ μ°λ½ μ£ΌμΈμ.
νμ¬ μ²΄λ ₯μ hλΌκ³ νμ. μ΅λνμ 곡격μ λ²νΈ μ μλ μ λ΅μ λ€μκ³Ό κ°λ€.
- 곡격μ λ°λλ€. μ¦, hβhβAλ₯Ό μννλ€.
- hβ€Aμ΄κ³ μ€ν¬κ° λ¨μμλ€λ©΄ ν볡νλ€. μ¦,
- h>Aκ° λ λκΉμ§ hβh+Bλ₯Ό μννλ€.
- hβ₯Hμ΄λ©΄ hβHλ₯Ό μννλ€.
Hβ€AμΈ κ²½μ°, ν λ²μ 곡격μ μ¦μ¬νλ―λ‘ λ΅μ νμ 1μ΄λ€.
Hβ₯A+BμΈ κ²½μ°, ν볡λμ νμ Bκ° λλλ‘ ν μ μλ€. λ°λΌμ λ΅μ βAH+BSββμ΄λ€.
μ΄μ A<H<A+BμΈ κ²½μ°λ§ κ³ λ €νλ©΄ λλ€.
ν볡 κ³Όμ (1)μ λλΈ νμλ νμ A<hβ€A+Bκ° λλ€λ κ²μ μ£Όλͺ©νμ. y=A+Bβhλ‘ μ μνλ©΄ μ΄κΈ°κ°μ y0β=A+BβHκ° λκ³ , μ μ λ΅μ yμ λν μμΌλ‘ μ°λ©΄ μλμ λμΉμ΄λ€.
- yβ(y+A)modB
- yβ€y0βμ΄λ©΄ yβy0β
yβy0βμ΄ μνλλ©΄ 체λ ₯μ μ΄κΈ° μνμΈ μ΅λ 체λ ₯μΌλ‘ λμμ¨λ€. μ¦, y=y0βμμ μμνμ¬ μ²μμΌλ‘ y=y0βλ‘ λμμ¬ λκΉμ§ yκ°μ λ³νλ ν μ£ΌκΈ°λ₯Ό νμ±νλ€. ν μ£ΌκΈ° λμ λ°μ 곡격μ μλ₯Ό xλΌκ³ νλ©΄, xλ (y0β+Ax)modBβ€y0βλ₯Ό λ§μ‘±νλ μ΅μμ μμ μ μκ° λλ€. λ¨Όμ , λ€μκ³Ό κ°μ νκΈ°λ²μ μ μνμ.
(Lβ€xβ€R)modMβ{xmodMβ[LmodM,RmodM]xmodMβ[LmodM,M)βͺ[0,RmodM]β(LmodMβ€RmodM)(LmodM>RmodM)β
μ¦, xλ (βy0ββ€Axβ€0)modBλ₯Ό λ§μ‘±νλ μ΅μμ μμ μ μμ΄λ€. x=1+xβ²λ‘ μ°λ©΄, xβ²λ (βy0ββAβ€Axβ€βA)modBλ₯Ό λ§μ‘±νλ μ΅μμ μμ΄ μλ μ μμ΄λ€. μ΄λ¬ν λ¬Έμ λ O(logB)μ ν μ μμμ΄ μλ €μ Έ μμΌλ©°, μλ₯Ό λ€μ΄ μ΄ λΈλ‘κ·Έμ κ°μ κΈμμ μ€λͺ
νκ³ μλ€.
f(A,M,L,R)μ (Lβ€Axβ€R)modMμ λ§μ‘±νλ μ΅μμ μμ΄ μλ μ μ xλ‘ μ μνμ. λ§μ½ (L>R)modMμ΄κ±°λ LmodM=0μ΄λ©΄, f(A,M,L,R)=0μ΄λ€.
λ§μ½ 2(AmodM)>MμΈ κ²½μ°, λΆνΈλ₯Ό λ€μ§μ΄μ (βRβ€βAxβ€βL)modMμ νμ. μ¦, f(AmodM,M,L,R)=f(βAmodM,M,βR,βL)μ΄λ€. κ·Έλ¬λ©΄ 2(βAmodM)β€Mμ λ§μ‘±νκ² λλ€. λ°λΌμ μ΄μ λΆν° νμ 2Aβ€Mμ κ°μ ν μ μλ€.
λ¨Όμ μλͺ
ν ν΄κ° μλμ§ νμΈνμ. (Lβ²,Rβ²)=(L,R)modMμΌλ‘ λμ. λ§μ½ Lβ²β€Axβ€Rβ²μ λ§μ‘±νλ μμ΄ μλ μ μ xκ° μλ€λ©΄, x=βALβ²ββμ΄ ν΄κ° λλ€.
κ·Έλ μ§ μλ€λ©΄, Lβ²+Mtβ€Axβ€Rβ²+MtμΈ xκ° μ‘΄μ¬νλ μ΅μμ μμ΄ μλ μ μ tλ₯Ό μ°ΎμμΌ νλ€. μ΄λ Lβ²β€AxβMtβ€Rβ²κ³Ό λμΉμ΄κ³ , μ΄λ₯Ό (modA)μμ 보면 (Lβ²β€βMtβ€Rβ²)modAλ₯Ό λ§μ‘±νλ ν΄λ₯Ό μ°Ύλ κ²μ΄λ€. μ΄λ κ² tλ₯Ό μ°ΎμμΌλ©΄, xλ Lβ²+Mtβ€Axλ₯Ό λ§μ‘±νλ μ΅μμ μμ΄ μλ μ μμ΄λ€. μ¦, f(A,M,L,R)=βAL+Mf(βM,A,Lβ²,Rβ²)ββμ΄λ€. μ΄ κ΄κ³μμΌλ‘λΆν° fλ₯Ό κ³μ°ν λ νμ 2Aβ€Mμ λ§μ‘±νλ―λ‘, mod κ°μ 2λ°° μ΄μ κ°μνλ€. λ°λΌμ f(A,M,L,R)μ κ³μ°μλ O(logM)μ μκ°μ΄ μμλλ€.
μ λ°©λ²μΌλ‘ ν μ£ΌκΈ° λμ λ°μ 곡격 νμλ₯Ό κ³μ°νλ©΄ x=1+f(A,B,βy0ββA,βA)μ΄κ³ , κ·Έ λμμ ν볡 νμ N=βBAxββμ΄λ€.
Sλ₯Ό NμΌλ‘ λλ λͺ«μ q, λλ¨Έμ§λ₯Ό rμ΄λΌκ³ νμ. κ·Έλ¬λ©΄ qμ£ΌκΈ°λ₯Ό λ°λ³΅νλ©΄μ qxλ²μ 곡격μ λ°κ³ , λλ¨Έμ§ rλ²μ ν볡μ λͺ¨λ μ΅λκ°μΈ Bλ‘ μ¬μ©ν μ μλ€. λ°λΌμ λ΅μ n=qx+βAH+Brββμ΄κ³ , μκ° λ³΅μ‘λλ ν
μ€νΈ μΌμ΄μ€λΉ O(logB)μ΄λ€.