Spheres containing record numbers of lattice points of the cubic lattice Z^3 C Count how many lattice points of Z3 C are hit by spheres around (0,0,0) C Hugo Pfoertner, http://www.abouthugo.de/ C C Change history: C 01.11.2002 Count position of record setting spheres within C list of all spheres that hit lattice points C 25.05.2002 Memory allocation modified C 24.05.2002 Initial version C IMPLICIT INTEGER (A-Z) C Dynamically allocatable array of counts CF90 INTEGER(2), ALLOCATABLE :: C(:) C NON-STANDARD, WORKS WITH WATCOM FORTRAN DIMENSION C(:) C Read inner and outer radius of ring to be searched WRITE (*,*) 'RMIN, RMAX:' READ (*,*) RMIN, RMAX C Size of array RMI2 = RMIN * RMIN RMA2 = RMAX * RMAX ALLOCATE ( C(RMI2:RMA2), STAT=IASTAT ) IF ( IASTAT .NE. 0 ) THEN STOP 'Allocation failed' ELSE WRITE (*,*) & 'Memory allocated (Mb):', FLOAT(4*(RMA2-RMI2)+2)/FLOAT(2**20) ENDIF C Preset (Fortran 90) CF90 C = 0 DO 5 R2 = RMI2, RMA2 C(R2) = 0 5 CONTINUE C Loops over the domain DO 10 K = -RMAX, RMAX K2 = K * K DO 10 J = -RMAX, RMAX J2 = J * J DO 10 I = -RMAX, RMAX I2 = I * I R2 = I2 + J2 + K2 IF ( R2 .GE. RMI2 .AND. R2 .LE. RMA2 ) C(R2) = C(R2) + 1 10 CONTINUE C Search for increasing maxima of counts A = 0 CS = 0 IF ( RMI2 .EQ. 0 ) CS = -1 DO 20 R2 = RMI2, RMA2 C Count all spheres hitting lattice points IF ( C(R2) .GT. 0 ) CS = CS + 1 IF ( C(R2) .GT. A ) THEN A = C(R2) R = INT ( SQRT ( FLOAT ( R2 ) ) ) IF ( R * R .LT. R2 ) THEN WRITE (*,1000) R2, CS, A, R+1 1000 FORMAT ( 2 I8, I6, I5 ) ELSE WRITE (*,1000) R2, CS, A, R ENDIF ENDIF 20 CONTINUE END Results for Input RMIN=0, RMAX=2000 A071609 A076180 A071611 A071610 0 0 1 0 1 1 6 1 2 2 12 2 5 5 24 3 9 8 30 3 14 13 48 4 26 23 72 6 41 35 96 7 74 63 120 9 89 76 144 10 101 86 168 11 146 123 192 13 194 163 240 14 269 226 264 17 314 264 312 18 341 287 336 19 446 374 384 22 614 514 408 25 626 523 432 26 689 576 480 27 794 664 504 29 854 715 528 30 941 787 552 31 1106 924 576 34 1109 927 600 34 1154 963 672 34 1286 1074 696 36 1361 1137 720 37 1634 1364 768 41 1781 1487 816 43 1889 1576 864 44 2141 1786 936 47 2609 2176 1008 52 2966 2475 1032 55 3134 2614 1056 56 3401 2837 1104 59 3449 2877 1200 59 3506 2925 1248 60 4241 3536 1296 66 4289 3576 1344 66 4826 4025 1440 70 5381 4487 1512 74 5561 4638 1584 75 6254 5215 1680 80 7229 6026 1704 86 7829 6527 1752 89 8069 6726 1848 90 8126 6774 1920 91 8774 7314 2016 94 9974 8315 2040 100 10526 8774 2064 103 10709 8927 2280 104 11714 9764 2352 109 13109 10928 2376 115 13166 10976 2544 115 13961 11637 2592 119 15461 12887 2808 125 17954 14964 2976 134 19634 16365 3024 141 21089 17577 3264 146 23141 19288 3360 153 23201 19337 3504 153 24569 20476 3648 157 27914 23265 3696 168 29069 24227 3792 171 30014 25015 4080 174 33809 28176 4176 184 36209 30177 4224 191 36566 30476 4272 192 37946 31625 4296 195 38246 31876 4368 196 40169 33477 4560 201 42041 35037 4608 206 42929 35777 4656 208 45041 37536 4800 213 46406 38676 4824 216 47141 39287 4992 218 49661 41386 5088 223 52454 43716 5208 230 54809 45678 5280 235 59006 49175 5328 243 59309 49428 5712 244 64154 53465 5928 254 64466 53725 5952 254 70769 58977 6240 267 75869 63227 6264 276 78881 65737 6336 281 79301 66088 6360 282 79694 66416 6480 283 81149 67627 6720 285 81626 68026 6936 286 99074 82564 7056 315 99986 83325 7344 317 101261 84388 7440 319 107201 89337 7536 328 108554 90464 7560 330 110549 92128 7728 333 112514 93765 8112 336 122009 101677 8160 350 123254 102715 8184 352 127826 106525 8256 358 128189 106827 8280 359 128246 106875 8568 359 130646 108875 8664 362 134741 112288 8712 368 140846 117375 8784 376 149126 124275 8928 387 151961 126638 9024 390 153401 127838 9072 392 162161 135137 9504 403 162686 135575 9984 404 174929 145778 10320 419 181814 151516 10392 427 187886 156576 10416 434 190181 158489 10728 437 200966 167475 10968 449 217829 181529 11304 467 224234 186866 11568 474 228686 190576 11664 479 243374 202817 12528 494 253406 211175 12576 504 269981 224987 12696 520 273209 227678 12960 523 282266 235226 13104 532 300746 250626 13512 549 305114 254265 13536 553 305549 254628 13584 553 329969 274977 14256 575 356474 297065 14400 598 358874 299066 14616 600 359141 299289 14640 600 369134 307616 14928 608 378509 315428 15000 616 390386 325325 15360 625 397526 331276 15408 631 404414 337016 15888 636 416666 347227 16248 646 445826 371526 16704 668 472694 393916 16848 688 476321 396937 16896 691 493349 411127 17568 703 531506 442924 17856 730 532034 443364 18000 730 539486 449576 18480 735 558689 465577 18624 748 564086 470076 18864 752 581129 484277 19008 763 596021 496688 19032 773 615086 512576 19248 785 626006 521677 19272 792 633569 527978 19536 796 641021 534186 19776 801 644474 537066 20520 803 679454 566215 20640 825 724814 604016 20976 852 727949 606629 21096 854 734681 612239 21600 858 763454 636216 21648 874 773321 644438 22080 880 780386 650325 22176 884 792854 660716 22296 891 793586 661325 22464 891 833654 694716 22560 914 834209 695178 22800 914 839354 699467 23616 917 873974 728317 23904 935 879941 733290 24312 939 936029 780028 24456 968 943934 786616 24960 972 972221 810190 24984 987 1003001 835838 25104 1002 1017194 847666 25152 1009 1035641 863038 25296 1018 1050026 875025 25848 1025 1107746 923125 25920 1053 1119509 932929 26112 1059 1120649 933878 26400 1059 1122161 935137 26496 1060 1133681 944738 27792 1065 1190474 992065 27984 1092 1192721 993938 28224 1093 1301681 1084738 28608 1141 1315289 1096078 29568 1147 1331006 1109176 29760 1154 1364354 1136966 29856 1169 1371926 1143277 30264 1172 1395866 1163227 30432 1182 1402649 1168879 30960 1185 1533314 1277766 31200 1239 1582181 1318488 32688 1258 1622969 1352479 32832 1274 1699829 1416528 34440 1304 1868954 1557465 34656 1368 1902029 1585028 34776 1380 1914701 1595589 35952 1384 1933049 1610878 36288 1391 1969106 1640925 36480 1404 2020721 1683939 36960 1422 2067974 1723315 37224 1439 2126141 1771787 37416 1459 2132114 1776764 37728 1461 2184101 1820089 39432 1478 2405009 2004178 39840 1551 2423669 2019729 39864 1557 2437826 2031526 40704 1562 2551106 2125927 42336 1598 2743289 2286078 43200 1657 2826914 2355765 45360 1682 3147569 2622977 46752 1775 3307589 2756328 46896 1819 3316634 2763867 47232 1822 3341621 2784689 47760 1829 3452426 2877026 48960 1859 3458846 2882376 49584 1860 3633629 3028028 49824 1907 3692246 3076878 49920 1922 3737774 3114816 51216 1934 3744989 3120829 52128 1936 3854681 3212240 52560 1964 3905249 3254380 52704 1977