34 lines
887 B
Text
34 lines
887 B
Text
// [dependencies]
|
|
// primal = "0.2"
|
|
|
|
fn compute_transitions(limit: usize) {
|
|
use std::collections::BTreeMap;
|
|
let mut transitions = BTreeMap::new();
|
|
let mut prev = 0;
|
|
for n in primal::Primes::all().take(limit) {
|
|
let digit = n % 10;
|
|
if prev != 0 {
|
|
let key = (prev, digit);
|
|
if let Some(v) = transitions.get_mut(&key) {
|
|
*v += 1;
|
|
} else {
|
|
transitions.insert(key, 1);
|
|
}
|
|
}
|
|
prev = digit;
|
|
}
|
|
println!("First {} prime numbers:", limit);
|
|
for ((from, to), c) in &transitions {
|
|
let freq = 100.0 * (*c as f32) / (limit as f32);
|
|
println!(
|
|
"{} -> {}: count = {:7}, frequency = {:.2} %",
|
|
from, to, c, freq
|
|
);
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
compute_transitions(1000000);
|
|
println!();
|
|
compute_transitions(100000000);
|
|
}
|