以下の内容はhttps://inamori.hateblo.jp/entry/2023/11/11/204219より取得しました。


MojoでProject Euler 3

https://projecteuler.net/problem=3

Pythonならこんな風に書きたいところです。

from itertools import count
import sys

def f(n: int) -> int:
    for p in count(2):
        if p * p > n:
            return n
        elif n % p == 0:
            return f(n//p)
    return n

N = int(sys.argv[1])
print(f(N))

Mojoにはcountが無いので、rangeで代用しました。

import sys

def f(n: Int) -> Int:
    for p in range(2, n+1):
        if p * p > n:
            return n
        elif n % p == 0:
            return f(n//p)
    return n

fn main():
    let args = sys.argv()
    try:
        let N = atol(args[1])
        print(f(N))
    except:
        pass



以上の内容はhttps://inamori.hateblo.jp/entry/2023/11/11/204219より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14