Cod sursa(job #3181479)

Utilizator sebii_cSebastian Claici sebii_c Data 7 decembrie 2023 04:29:19
Problema Algoritmul lui Euclid Scor 100
Compilator rs Status done
Runda Arhiva educationala Marime 0.66 kb
use std::error::Error;
use std::fs::read_to_string;
use std::fs::File;
use std::io::Write;

pub fn solve(a: u64, b: u64) -> u64 {
    if a == 0 {
        b
    } else {
        solve(b % a, a)
    }
}

fn main() -> Result<(), Box<dyn Error>> {
    let mut buffer = File::create("euclid2.out")?;

    let _ = read_to_string("euclid2.in")?.lines().skip(1)
        .map(|line| line.trim().split_once(' ').expect("two numbers"))
        .map(|(xs, ys)| {
            let x = xs.parse::<u64>().unwrap();
            let y = ys.parse::<u64>().unwrap();
            format!("{}\n", solve(x, y))
        })
        .for_each(|s| { let _ = buffer.write(s.as_bytes()); });

    Ok(())
}