BigIntを使った 巨大数の素数判定 と 巨大素数の生成 例題です。どちらも乱数で生成しているので、毎回異なった結果となります。
▶️超巨大数の素数判定です。
let a : BigInt = BigInt.random(digits: 100)//100桁の乱数を発生
let p : Bool = a.isProbablePrime//aが素数か判定
print("a = \(a)")
print("素数? : \(p)")
生成数 a = 4080576389615484639217410319794035285306219153424738026881390666490713196479240782101365258260755849
素数? : false
▶️超巨大素数の生成
let q : Int = 500
let p:BigInt = BigInt.randomProbablePrime(digits: q)!//q桁の素数を生成
print("\(q)桁の素数")
print("p = \(p)")
500桁の素数
p = 74393286265927864777894845689626703842014423699935530360926095464470636698662043463433058977577418309173164487180016273922124156845436693893569186306744061374216048021574779826731892493002523820872339518999872773201145745774846086170094938019205605075864239436606264185489246139479201621920864079610821287487036480667759434721706510816168747423858993799743262542347998436355183612922006505878617742772389517711082003840028109781584293467388462427533512307204450991736332324003703122177166140650417279
