# Talk:Product of divisors

### Choosing the right abstraction

This is really an exercise in defining a **divisors** function, and the only difference between the suggested Sum and Product draft tasks boils down to two trivial morphemes:

**reduce(add, divisors(n), 0)** vs **reduce(mul, divisors(n), 1)**

The goal of Rosetta code (see the landing page) is to provide contrastive insight (rather than comprehensive coverage of homework questions :-). Perhaps the scope for contrastive insight in the matter of divisors is already exhausted by the trivially different **Proper divisors** task.

Hout (talk) 17:42, 20 December 2020 (UTC)

There are numbers called divisorial related to that problem. Single responsability. It is like creating the sigma function with all the cases or to use gamma function instead of factorial. http://oeis.org/wiki/Divisorial --Blek

## There are alternative algorithms

... for calculating the sum/product of the divisors that don't rely on enumerating the divisors and then summing/multiplying them (As in Simonjsaunders demonstrates with the C++ sample) for this and the Sum Of Divisors Task. --Tigerofdarkness (talk) 20:58, 21 December 2020 (UTC)