Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Giảm số mũ theo Euler

    Lũy thừa với số mũ khổng lồ — định lý Euler tổng quát

    Khi số mũ bbb cực lớn và a,na,na,n không cần nguyên tố cùng nhau, ta dùng định lý Euler tổng quát (generalized Euler / lifting):

    ab≡a b mod φ(n) + φ(n)(modn)khi b≥φ(n)a^{b} \equiv a^{\,b \bmod \varphi(n) \,+\, \varphi(n)} \pmod n \quad\text{khi } b \ge \varphi(n)ab≡abmodφ(n)+φ(n)(modn)khi b≥φ(n)

    Cho aaa, bbb, nnn. In ab mod na^{b}\bmod nabmodn áp dụng quy tắc trên (kết quả vẫn đúng kể cả bbb rất lớn).

    Ví dụ

    a=2a=2a=2, b=100b=100b=100, n=12n=12n=12: φ(12)=4\varphi(12)=4φ(12)=4, 100≥4100\ge4100≥4 nên dùng e=100 mod 4+4=4e=100\bmod4+4=4e=100mod4+4=4, 24=16≡4(mod12)2^4=16\equiv4\pmod{12}24=16≡4(mod12).

    • Định dạng đầu vào:

      Một dòng gồm ba số nguyên aaa, bbb, nnn.

    • Ràng buộc đầu vào:

      1≤a<1091 \le a < 10^{9}1≤a<109, 0≤b<102000 \le b < 10^{200}0≤b<10200, 2≤n≤10122 \le n \le 10^{12}2≤n≤1012.

    • Định dạng đầu ra:

      Một số nguyên là ab mod na^{b}\bmod nabmodn.

    Ví dụ:

    Đầu vào:

    2 100 12
    

    Đầu ra:

    4

    Giải thích:

    phi(12)=4; e=100 mod 4 + 4 = 4; 2^4=16≡4 (mod 12).

    Đang tải editor...