题解 | #质数因子#

质数因子

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 语法就能看懂

全部评论
该牛油正在参与牛客写题解薅羊毛的活动,牛币,周边,京东卡超多奖品放送,活动进入倒计时!快来捡漏啦https://www.nowcoder.com/discuss/888949?source_id=profile_create_nctrack&channel=-1
点赞 回复 分享
发布于 2022-04-20 17:21

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务