Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,971 questions

51,913 answers

573 users

How to generate an N-digit integer random number in Rust

1 Answer

0 votes
use rand::{Rng, SeedableRng};
use rand::rngs::StdRng;
use std::time::{SystemTime, UNIX_EPOCH};

fn generate_n_digit_number(n: usize) -> Result<u64, String> {
    if n < 1 {
        return Err("n must be a positive integer (>= 1).".to_string());
    }

    let lower_bound: u64 = if n > 1 {
        10u64.pow((n - 1) as u32)
    } else {
        0
    };
    let upper_bound: u64 = 10u64.pow(n as u32) - 1;
    
    let seed = SystemTime::now()
        .duration_since(UNIX_EPOCH)
        .expect("Time went backwards")
        .as_nanos() as u64;

    let mut rng = StdRng::seed_from_u64(seed);

    let r = rng.random_range(lower_bound..=upper_bound);

    Ok(r)
}

fn main() {
    println!("{:?}", generate_n_digit_number(1).unwrap());
    println!("{:?}", generate_n_digit_number(4).unwrap());
    println!("{:?}", generate_n_digit_number(10).unwrap());
}



/*
run:

6
2841
5620598483

*/

 



answered Nov 27, 2025 by avibootz
...