>>911
べき乗を特定の数で割った余りはループするから、高校生でも計算できる
簡単のため、「 a を n で割った余りと b を n で割った余りが等しい」ことを
a ≡ b (mod n) と書く
地道に計算して周期を求めれば良い
(ただし、 a ≡ b (mod n) のとき、ac ≡ bc (mod n) が成り立つことは証明する必要がある)
…と思ったが意外と面倒そうだったので、少しだけ工夫して計算することを考える

2^11 = 2048 ≡ 27 (mod 2021) より、
2^2021 = 2^(11*183 + 8) = ((2^11)^183) * 2^8 ≡ (27^183) * 256 (mod 2021)
となるので、27^183 (mod 2021) を求めれば良い
27^2 = 729, 27^3 = 19683 ≡ 1494 (mod 2021) より、
27^183 = 27^(3*61) ≡ 1494^61 (mod 2021)
となるので、 1494^61 (mod 2021) を求めれば良い
1494^2 = 2232036 ≡ 852 (mod 2021) より、
1494^61 = 1494^(2*30 + 1) ≡ (852^30) * 1494 (mod 2021)
となるので、 852^30 (mod 2021) を求めれば良い
852^2 = 725904 ≡ 365 (mod 2021) より、
852^30 = 852^(2*15) ≡ 365^15 (mod 2021)
となるので、 365^15 (mod 2021) を求めれば良い
365^2 = 133225 ≡ 1860 (mod 2021) より、
365^15 = 365^(2*7 + 1) ≡ (1860^7) * 365 (mod 2021)
となるので、 1860^7 (mod 2021) を求めれば良い
1860 ≡ -161 (mod 2021) より、 1860^2 ≡ (-161)^2 = 25921 ≡ 1669 (mod 2021) だから、
1860^7 ≡ (1669^3) * (-161) (mod 2021)
となるので、 1669^3 (mod 2021) を求めれば良い
1669 ≡ -352 (mod 2021) より、
1669^3 ≡ (-352)^3 ≡ -43614208 ≡ -1028 (mod 2021)

以上より、
2^2021 ≡ (27^183) * 256
≡ (1494^61) * 256
≡ (852^30) * 1494 * 256
≡ (365^15) * 1494 * 256
≡ (1860^7) * 365 * 1494 * 256
≡ (1669^3) * (-161) * 365 * 1494 * 256
≡ (-1028) * (-161) * 365 * 1494 * 256
≡ 1028 * (161 * 365) * 1494 * 256
≡ (1028 * 156) * 1494 * 256
≡ (709 * 1494) * 256
≡ 242 * 256
≡ 1322 (mod 2021)

…もっと楽なやり方ないですかね?