RustでProject Euler (5)

関数の返り値の型

こんな感じですね。

fn max_prime(m: i64) -> i64 {
    ...
}

これも後ろに書くんですね。

use std::env;

fn main() {
    let args: Vec<String> = env::args().collect();
    let n: i64 = args[1].parse().unwrap();
    println!("{}", max_prime(n));
}

fn max_prime(m: i64) -> i64 {
    let mut n: i64 = m;
    for p in 2..n {
        if p*p > n {
            break;
        }
        else if n%p == 0 {
            n /= p;
            while n%p == 0 {
                n /= p;
            }
            if n == 1 {
                return p;
            }
        }
    }
    return n;
}