全体像を掴むために、関数一覧を載せます。
この説明に書かれていない関数は後日載せます。
//1)初期化
let n : BigInt = "100"//文字列リテラル
let m = BigInt("10")
let o : BigInt = 10//整数リテラル
let p = BigInt(10)
//2)基本演算 加法・減法・乗法・除法・剰余
let sum : BigInt = n + m
let sub : BigInt = n - m
let mul : BigInt = n * m
let div : BigInt = n / m
let mod : BigInt = n % m
print(sum , sub , mul , div , mod)
//3)判定系
let q: BigInt = "-12"
print(q.isEven) // true 偶数ならtrue
print(q.isOdd) // false 奇数ならtrue
print(q.isPositive) // true 0より大きければtrue
//4)桁数・変換
let big: BigInt = "65535"
print(big.digitCount) // 5 桁数を取得
print(big.toHexString()) // "FFFF" 16進数に変換
print(big.toIntSafe()) // Optional(65535) 安全にInt型に変換
//オーバーフローの場合は0
//5) 数学関数
//累乗
let two: BigInt = 2
let power = BigInt.pow(two, 100) // 2^100
print(power)
//最大公約数・最小公倍数
print(BigInt.gcd(42, 56)) // 14
print(BigInt.lcm(12, 18)) // 36
//平方根
let sq: BigInt = "144"
print(BigInt.sqrt(of: sq)) // 12
//階乗
print(BigInt.factorial(10)) // 3628800
//6. 乱数生成
let r1 = BigInt.random(digits: 5) // 5桁ランダム
let r2 = BigInt.random(in: 10...1000) // 範囲ランダム
print(r1, r2)
//7. 素数判定
let prime: BigInt = "32416190071" // 素数
print(BigInt.isProbablePrime(prime, 10)) // true
