https://projecteuler.net/problem=100
トータルのディスクの数をn、青いディスクの数をmとすると、
これを変形して、
これはPell方程式です。解は、
と書けます。
import sys #################### process #################### # x^2 - 2y^2 = -1 fn next_solution(x: Int, y: Int) -> Tuple[Int, Int]: return (x*3 + y*4, x*2 + y*3) fn f(N: Int) -> Int: # (2n-1)^2 - 2(2m-1)^2 = -1 var x = 1 var y = 1 while x <= N*2 + 1: var t = next_solution(x, y) x = t.get[0, Int]() y = t.get[1, Int]() return (y + 1) // 2 fn main() raises: var args = sys.argv() var E = atol(args[1]) print(f(10**E))