Proper divisors: Difference between revisions
Content added Content deleted
(1 has no proper divisors.) |
(→{{header|Python}}: Fix for 1.) |
||
Line 164: | Line 164: | ||
=={{header|Python}}== |
=={{header|Python}}== |
||
{{incorrect|Python|1 has no proper divisors.}} |
|||
===Python: Literal=== |
===Python: Literal=== |
||
A very literal interpretation |
A very literal interpretation |
||
<lang python>>>> def proper_divs2(n): |
<lang python>>>> def proper_divs2(n): |
||
... return {x for x in range(1, (n + 1) // 2 + 1) if n % x == 0} |
... return {x for x in range(1, (n + 1) // 2 + 1) if n % x == 0 and n != x} |
||
... |
... |
||
>>> [proper_divs2(n) for n in range(1, 11)] |
>>> [proper_divs2(n) for n in range(1, 11)] |
||
[ |
[set(), {1}, {1}, {1, 2}, {1}, {1, 2, 3}, {1}, {1, 2, 4}, {1, 3}, {1, 2, 5}] |
||
>>> |
>>> |
||
>>> n, length = max(((n, len(proper_divs2(n))) for n in range(1, 20001)), key=lambda pd: pd[1]) |
>>> n, length = max(((n, len(proper_divs2(n))) for n in range(1, 20001)), key=lambda pd: pd[1]) |
||
Line 233: | Line 232: | ||
except KeyError: |
except KeyError: |
||
pass |
pass |
||
return divs or {1} |
return divs or ({1} if n != 1 else set()) |
||
Line 243: | Line 242: | ||
{{out}} |
{{out}} |
||
<pre>[ |
<pre>[set(), {1}, {1}, {1, 2}, {1}, {1, 2, 3}, {1}, {1, 2, 4}, {1, 3}, {1, 2, 5}] |
||
15120 79</pre> |
15120 79</pre> |