10進BASIC のプログラムを用いた、
第5フェルマー数 r は素数でない事の証明

2^(2^5) = 2^(32) = 4294967296
r = 2^(32)+1 = 4294967297

3 と r は互いに素である [ 2=-1(mod 3) より r = 2^(32) + 1 = (-1)^32 + 1 = 2 (mod 3) なので、r は 3 で割り切れないから]。
もし r が素数だったら、フェルマーの小定理より、
A = 3^(r-1) を r で割った余りは 1 になるはずである!!


A = 3^(r-1) = 3^(2^(32)) を r で割った余りを求めたい。
A = 3^(2の32乗) = 3^(2*2*2*2*2*........*2) = (........(((3)^2)^2)^2........) に注目。

下記の 10進BASIC(文教大学 白石和夫氏製作のWINDOWSで走る言語) でのプログラムを走らせる[ 3 を何回も 2乗する。2乗するたびごとに、r で割った余りで置き換え、桁数が上がるのを防ぐ]。

**************************
LET a=3
for I=1 to 32
LET a=a^2
LET a=a-Int(a/(4294967297))*4294967297
next I
print a
END
**************************

注:a-Int(a/(4294967297))*4294967297 は、a を 4294967297 で割った余りになる [a-(a/rの商)*r だから]。

計算結果より、A を r で割った余りは 2931268275となる。すなわち1ではない。

よって、r は素数でない!

(証明終り)

訂正: 山内紀夫氏は、10進Basicで、例えば 4294967297^2 を計算すると、有効数字15桁に丸められるため、「上記のプログラムは正しいが、出力された2931268275 は誤りである」と指摘された。ここに感謝する。読者自ら対応を考えられたい。(私は、コピーレフトの考えに賛同する者であり、フリーソフト愛好者である。有料プログラムは使いたくない。)