　まず $n$ が平方因子を持つとき, すなわちある素数 $p$ に対して $n$ が $p^2$ で割り切れるとき, $p^k\equiv p\pmod{n}$ となり得ないため $f(n)=-1$ である. したがって, 以下 $n=p_1p_2\cdots p_l$ ($p_1,p_2,\dots,p_l$ は相異なる素数)と表される場合のみ考えればよい. このとき, Fermatの小定理より
$$k^\prime=\textrm{lcm}(p_1-1,p_2-1,\cdots,p_l-1)+1$$
とすると, $k=k^\prime$ は条件をみたす. また, $2\leq k\lt k^\prime$ であるとき, ある $i$ が存在して $p_i-1$ は $k-1$ を割りきらないから, $g$ を $p_i$ における原始根とするとき, $g^{k}\not\equiv g\pmod{p_i}$ となり, 条件をみたさない. したがって $f(n)=k^\prime$ がわかり, 特に $f(2021)=967$ である. よって, 
$$\textrm{lcm}(p_1-1,p_2-1,\cdots,p_l-1)=966=2\times 3\times 7\times 23$$
なる素数の組を数え上げればよい. $p-1$ が $966$ の約数であるような素数 $p$ は
$$p=2,3,7,43,47,139,967.$$
このうち, $43,967$ から一つ以上選び, かつ $47,139,967$ から一つ以上選べば条件をみたすから, $43,47,139,967$ からの選び方は $11$ 通りであり, $2,3,7$ の選択は任意であるから, 全体では $\textbf{88}$ 個である.
公式解説
https://onlinemathcontest.com/contests/omc073/editorial/1722
　整数 $n\geq 2$ に対し, 以下の条件をみたす最小の整数 $k\geq 2$ を $f(n)$ とおきます：

- 任意の整数 $m$ に対し, $m^k$ と $m$ を $n$ で割った余りが等しい.

ただし, 存在しない場合は $f(n)=-1$ とします. $f(n)=f(2021)$ なる $n$ は, $2021$ **を含め**いくつありますか？