use crate::Solution;
use pmath::factors::distinct_prime_factors;
problem!(Problem0047, 47, "Distinct Primes Factors");
impl Solution for Problem0047 {
fn solve(&self) -> String {
const CONSECUTIVE_COUNT: u64 = 4;
let mut consecutive = [0; CONSECUTIVE_COUNT as usize];
let mut curr_num = 2 * 3 * 5 * 7;
while consecutive.iter().sum::<u64>()
!= (consecutive[0] * CONSECUTIVE_COUNT
+ (((CONSECUTIVE_COUNT - 1) * CONSECUTIVE_COUNT) / 2))
{
if distinct_prime_factors(curr_num).count() == CONSECUTIVE_COUNT as usize {
consecutive[0] = curr_num;
consecutive.rotate_left(1);
}
curr_num += 1;
}
consecutive[0].to_string()
}
}