dsalgo 0.3.10

A package for Datastructures and Algorithms.
Documentation
use crate::geometric_series::geometric_series;

pub fn divisors_sum_from_prime_factors(prime_factors: &[(u64, u8)]) -> u64 {
    let mut sum = 1;

    for &(p, e) in prime_factors {
        sum *= geometric_series(1, p as i64, e as usize) as u64;
    }

    sum
}

#[cfg(test)]

mod tests {

    #[test]

    fn test() {
        use super::*;
        use crate::prime_factorize_trial_division::*;

        let prime_factors = prime_factorize(24);

        assert_eq!(
            divisors_sum_from_prime_factors(&prime_factors),
            (1 + 2 + 4 + 8) * (1 + 3)
        );
    }
}