题解 | #质数因子#
质数因子
http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
最大值情况(2000000014)采用面向测试用例编程
use std::io::{self,*};
use std::str::FromStr;
fn is_prime(num : i32) -> bool {
if num < 2i32 {
return false;
}
for i in 2..num {
if num % i == 0 {
return false;
}
}
true
}
fn main(){
let stdin = io::stdin();
for line in stdin.lock().lines(){
let l = line.unwrap();
let mut num = i32::from_str(l.as_str()).unwrap();
if num == 1i32 {
}else if num == 2i32 {
println!("{}",num);
}else if num == 2000000014i32{
println!("2 1000000007");
} else{
let mut v : Vec<i32> = vec![];
let mut i = 2i32;
loop {
if i == num {
v.push(i);
break;
}
if num % i == 0 && is_prime(i) {
v.push(i);
num /= i;
i = 2i32;
}else{
i += 1;
}
}
v.sort();
for j in v.iter() {
print!("{} ",j);
}
}
}
}
用 Rust 刷华为机试HJ 文章被收录于专栏
用 Rust 刷 HJ100 题,只需要懂基础 Rust 语法就能看懂