BigInt

作成日:2025-09-30
最終更新日:

JavaScript で、BigInt は比較的新しく導入されたプリミティブである。大きすぎて number プリミティブで表すことができない数を表現する。 この機能は ECMA Script 2020 で導入されたものであり、2025-09-30 現在、ブラウザが Vivaldi や Chrome 、Edge、Firefox、Duckduckgo であれば動くことを確かめたが、 Seamonkey では動作しない。実際には、次のコードで確かめることができる。

if (typeof BigInt === 'undefined') {
    console.log("このブラウザは BigInt に未対応です。")
} else {
    console.log("このブラウザは BigInt に対応しています。")
}

中国人の定理

ここでは『科学と通信における数論(上)』で取り上げられていた「定理」を紹介する。 それは、`2^n-2` が `n` で割り切れるとき、かつそのときに限って `n` は素数である、 という「定理」である。ところがこれは、n = 341 のときは正しくない。つまり、`n` は `n = 11*31` のとおり、素数ではない(合成数である)であるが、 `2^n-2` は `n` で割り切れる。本書では、プログラム可能なポケット電卓を用いれば調べることができる、とある。 私はプログラム電卓を持っていないので、JavaScript の BigInt 機能を使って調べてみた。

`2^341` =

`(2^341 - 2) // 341` =

`(2^341 - 2) % 341` =

参考文献

まりんきょ学問所JavaScript 手習い > BigInt


MARUYAMA Satosi