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] Nghịch đảo modular của một dãy

    Tính nghịch đảo modular của 1,2,…,k1,2,\dots,k1,2,…,k

    Để tính nghịch đảo của mọi số trong 1..k1..k1..k modulo số nguyên tố ppp trong O(k)O(k)O(k), dùng công thức truy hồi:

    inv[1]=1,inv[i]=−⌊pi⌋⋅inv[p mod i] mod p\mathrm{inv}[1]=1,\qquad \mathrm{inv}[i] = -\left\lfloor \frac{p}{i}\right\rfloor\cdot \mathrm{inv}[p\bmod i] \bmod pinv[1]=1,inv[i]=−⌊ip​⌋⋅inv[pmodi]modp

    Cho kkk và số nguyên tố p>kp>kp>k. In trên một dòng các giá trị inv[1],…,inv[k]\mathrm{inv}[1],\dots,\mathrm{inv}[k]inv[1],…,inv[k] (mỗi giá trị trong [0,p)[0,p)[0,p)), cách nhau bởi dấu cách.

    Ví dụ

    Với p=7p=7p=7: inv[1..6]=1,4,5,2,3,6\mathrm{inv}[1..6]=1,4,5,2,3,6inv[1..6]=1,4,5,2,3,6.

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

      Một dòng gồm kkk và số nguyên tố ppp với p>kp>kp>k.

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

      1≤k≤1051 \le k \le 10^{5}1≤k≤105, k<p<109k < p < 10^{9}k<p<109, ppp nguyên tố.

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

      kkk số nguyên là nghịch đảo của 1..k1..k1..k modulo ppp.

    Ví dụ:

    Đầu vào:

    6 7
    

    Đầu ra:

    1 4 5 2 3 6

    Giải thích:

    inv[2]=4 vì 2·4=8≡1; inv[3]=5 vì 3·5=15≡1 (mod 7).

    Đang tải editor...