Q1:フェルマーの小定理は高校数学の教育課程に含まれていますか?大学入試でも出題されますか?
A1:日本の現行学習指導要領(数学Aの「整数の性質」など)において、公式そのものが必須知識として指定されているわけではありません。しかし、合同式の応用問題や、二項定理・数学的帰納法を用いた誘導形式の大問として、東京大学や京都大学をはじめとする難関大学の個別試験で極めて頻繁に題材として取り上げられています。背景知識として定理の証明構造を理解しておくことは、受験戦略上も大きなアドバンテージとなります。
Q2:量子コンピュータが実用化されるとフェルマーの小定理は無意味になるのですか?
A2:定理自体の数学的真理性が損なわれることは決してありません。ただし、フェルマーの小定理を土台にしたRSA暗号などの「素因数分解の困難性に依存する公開鍵暗号」は、ショアのアルゴリズムを走らせる大規模な耐障害型量子コンピュータによって多項式時間で解読されるリスクがあります。そのため国際的には、小定理とは異なる格子暗号などをベースにした「耐量子計算機暗号(PQC)」への移行作業が急速に進められています。
Q3:なぜ競技プログラミングでは「1000000007」や「998244353」という特定の数が法として指定されるのですか?
A3:理由は主に2点あります。第1に、これらの数が「32ビット符号付き整数の最大値(約21.4億)に収まり、かつ足し算を行ってもオーバーフローしない大きさの素数」であるためです。第2に、法が素数であればフェルマーの小定理を用いた $O(\log p)$ の逆元計算が保証されるためです。特に $998244353$ は $119 \times 2^{23} + 1$ と分解でき、高速フーリエ変換(NTT)を用いた畳み込み計算と相性が極めて良いため、現代のアルゴリズムコンテストで標準的に採用されています。