sum of multiples by 3 or 5 using ranges
I see you already solved your own questions from before your latest edit. Just two very minor things that can be improved: you can omit repeating the type name Init in two places:
template &lt;std::ranges::input_range R, typename Init = std::ranges::range_value_t&lt;R&gt;&gt;
constexpr auto accumulate(R&amp;&amp; rng, Init init = {}) 
{
    return std::reduce(std::ranges::begin(rng), std::ranges::end(rng), std::move(init));
}

And you don't need to use std::views::common in main().