Zumkeller numbers: Difference between revisions
Content deleted Content added
m →{{header|AppleScript}}: Incorporated "abundant number" optimisation for odd numbers. |
Alextretyak (talk | contribs) Added 11l |
||
Line 33: | Line 33: | ||
:* '''[[Abundant, deficient and perfect number classifications]]''' |
:* '''[[Abundant, deficient and perfect number classifications]]''' |
||
:* '''[[Proper divisors]]''' , '''[[Factors of an integer]]''' |
:* '''[[Proper divisors]]''' , '''[[Factors of an integer]]''' |
||
=={{header|11l}}== |
|||
{{trans|D}} |
|||
<lang 11l>F getDivisors(n) |
|||
V divs = [1, n] |
|||
V i = 2 |
|||
L i * i <= n |
|||
I n % i == 0 |
|||
divs [+]= i |
|||
V j = n I/ i |
|||
I i != j |
|||
divs [+]= j |
|||
i++ |
|||
R divs |
|||
F isPartSum(divs, sum) |
|||
I sum == 0 |
|||
R 1B |
|||
V le = divs.len |
|||
I le == 0 |
|||
R 0B |
|||
V last = divs.last |
|||
[Int] newDivs |
|||
L(i) 0 .< le - 1 |
|||
newDivs [+]= divs[i] |
|||
I last > sum |
|||
R isPartSum(newDivs, sum) |
|||
E |
|||
R isPartSum(newDivs, sum) | isPartSum(newDivs, sum - last) |
|||
F isZumkeller(n) |
|||
V divs = getDivisors(n) |
|||
V s = sum(divs) |
|||
I s % 2 == 1 |
|||
R 0B |
|||
I n % 2 == 1 |
|||
V abundance = s - 2 * n |
|||
R abundance > 0 & abundance % 2 == 0 |
|||
R isPartSum(divs, s I/ 2) |
|||
print(‘The first 220 Zumkeller numbers are:’) |
|||
V i = 2 |
|||
V count = 0 |
|||
L count < 220 |
|||
I isZumkeller(i) |
|||
print(‘#3 ’.format(i), end' ‘’) |
|||
count++ |
|||
I count % 20 == 0 |
|||
print() |
|||
i++ |
|||
print("\nThe first 40 odd Zumkeller numbers are:") |
|||
i = 3 |
|||
count = 0 |
|||
L count < 40 |
|||
I isZumkeller(i) |
|||
print(‘#5 ’.format(i), end' ‘’) |
|||
count++ |
|||
I count % 10 == 0 |
|||
print() |
|||
i += 2 |
|||
print("\nThe first 40 odd Zumkeller numbers which don't end in 5 are:") |
|||
i = 3 |
|||
count = 0 |
|||
L count < 40 |
|||
I i % 10 != 5 & isZumkeller(i) |
|||
print(‘#7 ’.format(i), end' ‘’) |
|||
count++ |
|||
I count % 8 == 0 |
|||
print() |
|||
i += 2</lang> |
|||
{{out}} |
|||
<pre> |
|||
The first 220 Zumkeller numbers are: |
|||
6 12 20 24 28 30 40 42 48 54 56 60 66 70 78 80 84 88 90 96 |
|||
102 104 108 112 114 120 126 132 138 140 150 156 160 168 174 176 180 186 192 198 |
|||
204 208 210 216 220 222 224 228 234 240 246 252 258 260 264 270 272 276 280 282 |
|||
294 300 304 306 308 312 318 320 330 336 340 342 348 350 352 354 360 364 366 368 |
|||
372 378 380 384 390 396 402 408 414 416 420 426 432 438 440 444 448 456 460 462 |
|||
464 468 474 476 480 486 490 492 496 498 500 504 510 516 520 522 528 532 534 540 |
|||
544 546 550 552 558 560 564 570 572 580 582 588 594 600 606 608 612 616 618 620 |
|||
624 630 636 640 642 644 650 654 660 666 672 678 680 684 690 696 700 702 704 708 |
|||
714 720 726 728 732 736 740 744 750 756 760 762 768 770 780 786 792 798 804 810 |
|||
812 816 820 822 828 832 834 836 840 852 858 860 864 868 870 876 880 888 894 896 |
|||
906 910 912 918 920 924 928 930 936 940 942 945 948 952 960 966 972 978 980 984 |
|||
The first 40 odd Zumkeller numbers are: |
|||
945 1575 2205 2835 3465 4095 4725 5355 5775 5985 |
|||
6435 6615 6825 7245 7425 7875 8085 8415 8505 8925 |
|||
9135 9555 9765 10395 11655 12285 12705 12915 13545 14175 |
|||
14805 15015 15435 16065 16695 17325 17955 18585 19215 19305 |
|||
The first 40 odd Zumkeller numbers which don't end in 5 are: |
|||
81081 153153 171171 189189 207207 223839 243243 261261 |
|||
279279 297297 351351 459459 513513 567567 621621 671517 |
|||
729729 742203 783783 793611 812889 837837 891891 908523 |
|||
960687 999999 1024947 1054053 1072071 1073709 1095633 1108107 |
|||
1145529 1162161 1198197 1224531 1270269 1307691 1324323 1378377 |
|||
</pre> |
|||
=={{header|AArch64 Assembly}}== |
=={{header|AArch64 Assembly}}== |