dsalgo 0.3.7

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_trial_division(24);
        assert_eq!(
            divisors_sum_from_prime_factors(&prime_factors),
            (1 + 2 + 4 + 8) * (1 + 3)
        );
    }
}