pub fn crack_mt19937_seed(seed: i32) -> Option<i32> {
    let mut gen = MT19937::new(seed);

    let first_ouput = gen.extract_number().unwrap();

    let mut guessed_seed: Option<i32> = None;
    for i in std::i32::MIN..std::i32::MAX {
        if MT19937::new(i).extract_number().unwrap() == first_ouput {
            guessed_seed = Some(i);
            break;
        }
    }

    guessed_seed
}
/// crack_mt19937_seed cracks the seed for the mt19937 generator.
///
/// Solution for problem 6 from set 3: <https://cryptopals.com/sets/3/challenges/22>
crack_mt19937_seed cracks the seed for the mt19937 generator.
Solution for problem 6 from set 3.
crack_mt19937_seed cracks the seed for the mt19937 generator . Solution for problem 6 from set 3 .
pub fn crack_mt19937_seed(seed: i32) -> Option<i32> {
    let mut gen = MT19937::new(seed);
    let first_ouput = gen.extract_number().unwrap();
    let mut guessed_seed: Option<i32> = None;
    for i in std::i32::MIN..std::i32::MAX {
        if MT19937::new(i).extract_number().unwrap() == first_ouput {
            guessed_seed = Some(i);
            break;
        }
    }
    guessed_seed
}
pub fn crack_mt19937_seed ( seed : i32 ) -> Option < i32 > { let mut gen = MT19937 :: new ( seed ) ; let first_ouput = gen . extract_number ( ) . unwrap ( ) ; let mut guessed_seed : Option < i32 > = None ; for i in std :: i32 :: MIN .. std :: i32 :: MAX { if MT19937 :: new ( i ) . extract_number ( ) . unwrap ( ) == first_ouput { guessed_seed = Some ( i ) ; break ; } } guessed_seed }
crack_mt19937_seed cracks the seed for the mt19937 generator.
crack_mt19937_seed cracks the seed for the mt19937 generator .
seed
i32