55 lines
1.3 KiB
Rust
55 lines
1.3 KiB
Rust
use std::io::{self, Write, BufWriter, BufRead};
|
|
|
|
enum Relation{
|
|
Factor,
|
|
Multiple,
|
|
Neither,
|
|
Zeros,
|
|
}
|
|
|
|
fn find_relation(n: u32, m:u32) -> Relation{
|
|
if m == 0 && n ==0 {
|
|
return Relation::Zeros;
|
|
}
|
|
else if m % n == 0{
|
|
return Relation::Factor;
|
|
}
|
|
else if n % m == 0{
|
|
return Relation::Multiple;
|
|
}
|
|
else{
|
|
return Relation::Neither;
|
|
}
|
|
}
|
|
|
|
fn main(){
|
|
let stdin = io::stdin();
|
|
let mut lock_in = stdin.lock();
|
|
|
|
let stdout = io::stdout();
|
|
let lock_out = stdout.lock();
|
|
let mut buff_out = BufWriter::new(lock_out);
|
|
|
|
loop{
|
|
let mut datas = String::new();
|
|
lock_in.read_line(&mut datas)
|
|
.expect("Failed to read line");
|
|
let mut datas = datas.trim().split(" ");
|
|
|
|
let n = datas.next().expect("Not enough input")
|
|
.parse::<u32>().expect("Not an integer");
|
|
let m = datas.next().expect("Not enough input")
|
|
.parse::<u32>().expect("Not an integer");
|
|
|
|
let relation : Relation = find_relation(n, m);
|
|
match relation{
|
|
Relation::Factor => buff_out.write(b"factor\n"),
|
|
Relation::Multiple => buff_out.write(b"multiple\n"),
|
|
Relation::Neither => buff_out.write(b"neither\n"),
|
|
Relation::Zeros => break,
|
|
}.expect("Unexpected input given");
|
|
}
|
|
}
|
|
|
|
|