https://projecteuler.net/problem=99
logを取るだけですね。
from math import log import sys #################### process #################### fn read_pairs(path: String) raises -> List[List[Float64]]: var pairs = List[List[Float64]]() with open(path, "r") as f: var data = f.read() var v = data.split("\n") for s in v: var pair_s = s[].split(",") var pair = List[Float64]() try: pair.append(atof(pair_s[0])) pair.append(atof(pair_s[1])) pairs.append(pair) except: pass return pairs fn f(path: String) raises -> Int: var pairs = read_pairs(path) var max_line = 0 var max_value = 0.0 for i in range(len(pairs)): var value = pairs[i][1] * log(pairs[i][0]) if value > max_value: max_line = i + 1 max_value = value return max_line fn main() raises: print(f("0099_base_exp.txt"))