This site is supported by donations to The OEIS Foundation.
Template:Divisor function
The {{divisor function}} arithmetic function template returns σk (n) for
| k ≠ 0 |
of a nonzero integer, otherwise returns an error message. For
| k = 0 |
, see {{number of divisors}} or {{sigma 0}} or {{tau}} arithmetic function template.
Usage
[edit]- {{sigma k|a nonzero integer|k = a nonzero integer (default 1)}}
or
- {{divisor function|a nonzero integer|k = a nonzero integer (default 1)}}
or
- {{sigma k|a nonzero integer}}
or
- {{divisor function|a nonzero integer}}
and for
| k = 0 |
use
- {{number of divisors|a nonzero integer}} or {{sigma 0|a nonzero integer}} or {{tau|a nonzero integer}}
Valid input
[edit]A nonzero integer less than 1031 2 = 1062961 (validation is done by the {{mpf}} arithmetic function template).
Examples
[edit]Examples with valid input (check for
| k ≥ 1 |
with Divisor function#Table of sequences)
|
A-number | |
|---|---|---|
| 0 | A000005
| |
| 1 | A000203
| |
| 2 | A001157
| |
| 3 | A001158
| |
| 4 | A001159
| |
| 5 | A001160
| |
| 6 | A013954
| |
| 7 | A013955
| |
| 8 | A013956
|
Unfortunately, with the transclusion of {{number of divisors/doc}} via the {{documentation}} template the precious limited nesting levels of templates and/or parser functions were exhausted! :-( Check {{number of divisors/doc}} directly to see that all the tests are successful. Fortunately, by transcluding {{number of divisors/doc}} directly, borrowing the minimum code needed here from the {{documentation}} template, we manage to not exhaust the limit! :-)
| Code | Result |
|---|---|
| {{divisor function|24|k = 3}} | 16380 |
| {{divisor function|24|k = 2}} | 850 |
| {{divisor function|24|k = 1}} | 60 |
| {{divisor function|24}} | 60 |
| {{divisor function|210^2}} | 160797 |
| {{divisor function|210^2}} | 160797 |
| {{divisor function|-28}} | 56 |
| {{divisor function|-5}} | 6 |
| {{divisor function|1}} | 1 |
| {{divisor function|7}} | 8 |
| {{divisor function|15}} | 24 |
| {{divisor function|27}} | 40 |
| {{divisor function|30}} | 72 |
| {{divisor function|111}} | 152 |
| {{sigma k|5^3 * 11^2}} | 20748 |
| {{sigma k|2^5 * 3^3 * 5}} | 15120 |
| {{sigma k|2^9 * 3^3}} | 40920 |
| {{sigma k|37^2 + 8 * 37^2}} | 18291 |
| {{sigma k|2^9 * (26 + 1)}} | 40920 |
| {{sigma k|89 * 113}} | 10260 |
| {{sigma k|79 * 79}} | 6321 |
| {{sigma k|210^2}} | 160797 |
| {{sigma k|233^2}} | 54523 |
| {{sigma k|10000}} | 24211 |
| {{sigma k|65535}} | 111456 |
| {{sigma k|65536}} | 131071 |
| {{sigma k|65537}} | 65538 |
| {{sigma k|65539}} | 65540 |
| {{sigma k|65540}} | 143640 |
| {{sigma k|65541}} | 99904 |
| {{sigma k|65542}} | 98316 |
| {{sigma k|65543}} | 65544 |
| {{sigma k|65547}} | 94692 |
| {{sigma k|65549}} | 73440 |
| {{sigma k|65551}} | 65552 |
| {{sigma k|65553}} | 87408 |
| {{sigma k|65557}} | 65558 |
| {{sigma k|65559}} | 96488 |
| {{sigma k|65561}} | 66852 |
| {{sigma k|65563}} | 65564 |
| {{sigma k|65567}} | 66120 |
| {{sigma k|65569}} | 86400 |
| {{sigma k|65571}} | 95424 |
| {{sigma k|65573}} | 68448 |
| {{sigma k|65577}} | 87440 |
| {{sigma k|65579}} | 65580 |
Examples with invalid input (argument validation by {{divisor function}} is omitted to spare some precious limited nesting levels of templates and/or parser functions).
| Code | Result |
|---|---|
| {{sigma k|0}} | Expression error: Unexpected < operator. |
| {{sigma k|1031^2}} | Expression error: Unexpected < operator. |
Code
[edit]
<noinclude><!-- {{documentation}} --><!-- We can't use it here, we reached the nesting levels limit of templates and/or parser functions!
So we just borrow the necessary code from it instead.
--><div style="text-align: center; font-size: smaller;">The following [[Help:Documenting templates|documentation]] is located at [[Template:{{PAGENAME}}/doc]].</div>{{Template:{{PAGENAME}}/doc}}<!--
:<math> \sigma_k(n) = \begin{cases}
\prod_{i=1}^{\omega(n)} (1 + \alpha_i) & \text{if } k = 0, \\
\prod_{i=1}^{\omega(n)} \frac{p_{i}^{k (1+ \alpha_i)} - 1}{p_{i}^{k} - 1} & \text{if } k > 0. \end{cases}</math>
For k = 0, we have a separate arithmetic function template: [[Template:Number of divisors]]
The following code is very inefficient, we call [[Template:mpf]] twice! To avoid this we would need a core function template to which we pass the result of [[Template:mpf]] to one of its arguments, but this requires one more templates and/or parser functions nesting level, unfortunately we've reached the limit! :-(
For -1 or +1, [[Template:mpf]] returns the empty string, so we use an ugly kludge (without adding a nesting level around [[Template:mpf]]) to get 1 as result, and to balance parenthesis. I admit that templates are no scripting language, and using templates to implement arithmetic functions is like using a screwdriver to hammer a nail...
--></noinclude><includeonly>{{#expr:
(
( {{#ifexpr: abs ({{{1|1}}}) = 1 | ( ( 2 }}{{mpf| {{{1|1}}} |sep = ) ) - 1) * ( |key/val_sep = ^( ({{{k|{{{2|1}}}}}}) * (1 + }} ) ) - 1)
)
/
(
( {{#ifexpr: abs ({{{1|1}}}) = 1 | ( 2 }}{{mpf| {{{1|1}}} |sep = ) - 1) * ( |key/val_sep = ^( ({{{k|{{{2|1}}}}}}) * 1^ }} ) - 1)
)
}}</includeonly>
See also
[edit]
- {{distinct prime factors up to sqrt(n)}} or {{dpf le sqrt(n)}}
- {{distinct nontrivial prime factors}} or {{dpf lt n}}
- {{distinct prime factors}} or {{dpf}}
- {{number of distinct prime factors}} or {{little omega}}
- {{sum of distinct prime factors}} or {{sodpf}}
- {{product of distinct prime factors}} or {{squarefree kernel}} or {{radical}} or {{rad}}
- {{multiplicity}}
- {{prime factors (with multiplicity) up to sqrt(n)}} or {{mpf le sqrt(n)}}
- {{nontrivial prime factors (with multiplicity)}} or {{mpf lt n}}
- {{prime factors (with multiplicity)}} or {{mpf}} or {{factorization}}
- {{number of prime factors (with multiplicity)}} or {{big Omega}}
- {{sum of prime factors (with multiplicity)}} or {{sopfr}} or {{integer log}}
- {{product of prime factors (with multiplicity)}} (must give back {{abs|n}}, the absolute value of
)n
- {{quadratfrei}}
- {{Moebius mu}} or {{mu}}
- {{Euler phi}} or {{totient}}
- {{Dedekind psi}}
- {{number of divisors}} or {{sigma 0}} or {{tau}}
- {{sum of divisors}} or {{sigma 1}} or {{sigma}} (Cf. {{divisor function}} or {{sigma k}}, with
(default value))k = 1 - {{divisor function}} or {{sigma k}} (for
)k ≠ 0
External links
[edit]- Andrew Hodges, Java Applet for Factorization
- http://factordb.com/