コラッツ数列を10**8まで計算してみました。すべて1に収束して停止しました。最長の数列は、初期値63,728,127で950個の数列となりました。
10**5を超えると32bit整数では桁あふれが起こるので、64bit整数を用いる必要があります。
■ソース・コード
MODULE m_Collatz IMPLICIT NONE CONTAINS RECURSIVE FUNCTION iCollatz(n) RESULT(ires) INTEGER(8), INTENT(IN) :: n INTEGER(8), ALLOCATABLE :: ires(:) IF (n == 1) THEN ires = [1] ELSE IF ( MOD(n, 2) == 0 ) THEN ! even ires = [n, iCollatz(n / 2)] ELSE ! odd ires = [n, iCollatz(3 * n + 1)] END IF RETURN END FUNCTION iCollatz END MODULE m_Collatz !=========================== PROGRAM test USE m_Collatz IMPLICIT NONE INTEGER(8) :: i, k INTEGER(8), ALLOCATABLE :: m(:), mm(:) k = 0 DO i = 1, 10**8 m = iCollatz(i) IF ( MOD(i, 10**5) == 0 ) PRINT *, i IF ( k < SIZE(m) ) THEN mm = m k = max(k, SIZE(m)) END IF END DO PRINT *, SIZE(mm) PRINT '(5i15)', mm STOP END PROGRAM test
■実行結果
950 63728127 191184382 95592191 286776574 143388287 430164862 215082431 645247294 322623647 967870942 483935471 1451806414 725903207 2177709622 1088854811 3266564434 1633282217 4899846652 2449923326 1224961663 3674884990 1837442495 5512327486 2756163743 8268491230 4134245615 12402736846 6201368423 18604105270 9302052635 27906157906 13953078953 41859236860 20929618430 10464809215 31394427646 15697213823 47091641470 23545820735 70637462206 35318731103 105956193310 52978096655 158934289966 79467144983 238401434950 119200717475 357602152426 178801076213 536403228640 268201614320 134100807160 67050403580 33525201790 16762600895 50287802686 25143901343 75431704030 37715852015 113147556046 56573778023 169721334070 84860667035 254582001106 127291000553 381873001660 190936500830 95468250415 286404751246 143202375623 429607126870 214803563435 644410690306 322205345153 966616035460 483308017730 241654008865 724962026596 362481013298 181240506649 543721519948 271860759974 135930379987 407791139962 203895569981 611686709944 305843354972 152921677486 76460838743 229382516230 114691258115 344073774346 172036887173 516110661520 258055330760 129027665380 64513832690 32256916345 96770749036 48385374518 24192687259 72578061778 36289030889 108867092668 54433546334 27216773167 81650319502 40825159751 122475479254 61237739627 183713218882 91856609441 275569828324 137784914162 68892457081 206677371244 103338685622 51669342811 155008028434 77504014217 232512042652 116256021326 58128010663 174384031990 87192015995 261576047986 130788023993 392364071980 196182035990 98091017995 294273053986 147136526993 441409580980 220704790490 110352395245 331057185736 165528592868 82764296434 41382148217 124146444652 62073222326 31036611163 93109833490 46554916745 139664750236 69832375118 34916187559 104748562678 52374281339 157122844018 78561422009 235684266028 117842133014 58921066507 176763199522 88381599761 265144799284 132572399642 66286199821 198858599464 99429299732 49714649866 24857324933 74571974800 37285987400 18642993700 9321496850 4660748425 13982245276 6991122638 3495561319 10486683958 5243341979 15730025938 7865012969 23595038908 11797519454 5898759727 17696279182 8848139591 26544418774 13272209387 39816628162 19908314081 59724942244 29862471122 14931235561 44793706684 22396853342 11198426671 33595280014 16797640007 50392920022 25196460011 75589380034 37794690017 113384070052 56692035026 28346017513 85038052540 42519026270 21259513135 63778539406 31889269703 95667809110 47833904555 143501713666 71750856833 215252570500 107626285250 53813142625 161439427876 80719713938 40359856969 121079570908 60539785454 30269892727 90809678182 45404839091 136214517274 68107258637 204321775912 102160887956 51080443978 25540221989 76620665968 38310332984 19155166492 9577583246 4788791623 14366374870 7183187435 21549562306 10774781153 32324343460 16162171730 8081085865 24243257596 12121628798 6060814399 18182443198 9091221599 27273664798 13636832399 40910497198 20455248599 61365745798 30682872899 92048618698 46024309349 138072928048 69036464024 34518232012 17259116006 8629558003 25888674010 12944337005 38833011016 19416505508 9708252754 4854126377 14562379132 7281189566 3640594783 10921784350 5460892175 16382676526 8191338263 24574014790 12287007395 36861022186 18430511093 55291533280 27645766640 13822883320 6911441660 3455720830 1727860415 5183581246 2591790623 7775371870 3887685935 11663057806 5831528903 17494586710 8747293355 26241880066 13120940033 39362820100 19681410050 9840705025 29522115076 14761057538 7380528769 22141586308 11070793154 5535396577 16606189732 8303094866 4151547433 12454642300 6227321150 3113660575 9340981726 4670490863 14011472590 7005736295 21017208886 10508604443 31525813330 15762906665 47288719996 23644359998 11822179999 35466539998 17733269999 53199809998 26599904999 79799714998 39899857499 119699572498 59849786249 179549358748 89774679374 44887339687 134662019062 67331009531 201993028594 100996514297 302989542892 151494771446 75747385723 227242157170 113621078585 340863235756 170431617878 85215808939 255647426818 127823713409 383471140228 191735570114 95867785057 287603355172 143801677586 71900838793 215702516380 107851258190 53925629095 161776887286 80888443643 242665330930 121332665465 363997996396 181998998198 90999499099 272998497298 136499248649 409497745948 204748872974 102374436487 307123309462 153561654731 460684964194 230342482097 691027446292 345513723146 172756861573 518270584720 259135292360 129567646180 64783823090 32391911545 97175734636 48587867318 24293933659 72881800978 36440900489 109322701468 54661350734 27330675367 81992026102 40996013051 122988039154 61494019577 184482058732 92241029366 46120514683 138361544050 69180772025 207542316076 103771158038 51885579019 155656737058 77828368529 233485105588 116742552794 58371276397 175113829192 87556914596 43778457298 21889228649 65667685948 32833842974 16416921487 49250764462 24625382231 73876146694 36938073347 110814220042 55407110021 166221330064 83110665032 41555332516 20777666258 10388833129 31166499388 15583249694 7791624847 23374874542 11687437271 35062311814 17531155907 52593467722 26296733861 78890201584 39445100792 19722550396 9861275198 4930637599 14791912798 7395956399 22187869198 11093934599 33281803798 16640901899 49922705698 24961352849 74884058548 37442029274 18721014637 56163043912 28081521956 14040760978 7020380489 21061141468 10530570734 5265285367 15795856102 7897928051 23693784154 11846892077 35540676232 17770338116 8885169058 4442584529 13327753588 6663876794 3331938397 9995815192 4997907596 2498953798 1249476899 3748430698 1874215349 5622646048 2811323024 1405661512 702830756 351415378 175707689 527123068 263561534 131780767 395342302 197671151 593013454 296506727 889520182 444760091 1334280274 667140137 2001420412 1000710206 500355103 1501065310 750532655 2251597966 1125798983 3377396950 1688698475 5066095426 2533047713 7599143140 3799571570 1899785785 5699357356 2849678678 1424839339 4274518018 2137259009 6411777028 3205888514 1602944257 4808832772 2404416386 1202208193 3606624580 1803312290 901656145 2704968436 1352484218 676242109 2028726328 1014363164 507181582 253590791 760772374 380386187 1141158562 570579281 1711737844 855868922 427934461 1283803384 641901692 320950846 160475423 481426270 240713135 722139406 361069703 1083209110 541604555 1624813666 812406833 2437220500 1218610250 609305125 1827915376 913957688 456978844 228489422 114244711 342734134 171367067 514101202 257050601 771151804 385575902 192787951 578363854 289181927 867545782 433772891 1301318674 650659337 1951978012 975989006 487994503 1463983510 731991755 2195975266 1097987633 3293962900 1646981450 823490725 2470472176 1235236088 617618044 308809022 154404511 463213534 231606767 694820302 347410151 1042230454 521115227 1563345682 781672841 2345018524 1172509262 586254631 1758763894 879381947 2638145842 1319072921 3957218764 1978609382 989304691 2967914074 1483957037 4451871112 2225935556 1112967778 556483889 1669451668 834725834 417362917 1252088752 626044376 313022188 156511094 78255547 234766642 117383321 352149964 176074982 88037491 264112474 132056237 396168712 198084356 99042178 49521089 148563268 74281634 37140817 111422452 55711226 27855613 83566840 41783420 20891710 10445855 31337566 15668783 47006350 23503175 70509526 35254763 105764290 52882145 158646436 79323218 39661609 118984828 59492414 29746207 89238622 44619311 133857934 66928967 200786902 100393451 301180354 150590177 451770532 225885266 112942633 338827900 169413950 84706975 254120926 127060463 381181390 190590695 571772086 285886043 857658130 428829065 1286487196 643243598 321621799 964865398 482432699 1447298098 723649049 2170947148 1085473574 542736787 1628210362 814105181 2442315544 1221157772 610578886 305289443 915868330 457934165 1373802496 686901248 343450624 171725312 85862656 42931328 21465664 10732832 5366416 2683208 1341604 670802 335401 1006204 503102 251551 754654 377327 1131982 565991 1697974 848987 2546962 1273481 3820444 1910222 955111 2865334 1432667 4298002 2149001 6447004 3223502 1611751 4835254 2417627 7252882 3626441 10879324 5439662 2719831 8159494 4079747 12239242 6119621 18358864 9179432 4589716 2294858 1147429 3442288 1721144 860572 430286 215143 645430 322715 968146 484073 1452220 726110 363055 1089166 544583 1633750 816875 2450626 1225313 3675940 1837970 918985 2756956 1378478 689239 2067718 1033859 3101578 1550789 4652368 2326184 1163092 581546 290773 872320 436160 218080 109040 54520 27260 13630 6815 20446 10223 30670 15335 46006 23003 69010 34505 103516 51758 25879 77638 38819 116458 58229 174688 87344 43672 21836 10918 5459 16378 8189 24568 12284 6142 3071 9214 4607 13822 6911 20734 10367 31102 15551 46654 23327 69982 34991 104974 52487 157462 78731 236194 118097 354292 177146 88573 265720 132860 66430 33215 99646 49823 149470 74735 224206 112103 336310 168155 504466 252233 756700 378350 189175 567526 283763 851290 425645 1276936 638468 319234 159617 478852 239426 119713 359140 179570 89785 269356 134678 67339 202018 101009 303028 151514 75757 227272 113636 56818 28409 85228 42614 21307 63922 31961 95884 47942 23971 71914 35957 107872 53936 26968 13484 6742 3371 10114 5057 15172 7586 3793 11380 5690 2845 8536 4268 2134 1067 3202 1601 4804 2402 1201 3604 1802 901 2704 1352 676 338 169 508 254 127 382 191 574 287 862 431 1294 647 1942 971 2914 1457 4372 2186 1093 3280 1640 820 410 205 616 308 154 77 232 116 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1