階乗$n!$の各桁の数の総和
整数$n$の各桁の数の総和を与える関数を$d(n)$と置くことにします。例えば $10!=3628800$ なので $d(10!)=27$ となります。下図は$d(0!)$~$d(100!)$の各位の数の総和をプロットしたもので、横軸が$n!$、縦軸が$d(n!)$です。
$n=1000$ までプロットすると次のようになり、カオス的な振る舞いが観察できます。
各位の数の総和の変化量 $d(n!)-d((n-1)!)$ をプロットすると以下のようになります。こちらの方がよりカオス感が見て取れますね。
なお、この変化量は $n>6$ のとき、管理人が確認した範囲では常に$9$の倍数になっていました。どなたか証明できた方は教えて下さい…。
各位の数の総和$d(n!)$のリスト
0! : 1
1! : 1
2! : 2
3! : 6
4! : 6
5! : 3
6! : 9
7! : 9
8! : 9
9! : 27
10! : 27
11! : 36
12! : 27
13! : 27
14! : 45
15! : 45
16! : 63
17! : 63
18! : 54
19! : 45
20! : 54
21! : 63
22! : 72
23! : 99
24! : 81
25! : 72
26! : 81
27! : 108
28! : 90
29! : 126
30! : 117
31! : 135
32! : 108
33! : 144
34! : 144
35! : 144
36! : 171
37! : 153
38! : 108
39! : 189
40! : 189
41! : 144
42! : 189
43! : 180
44! : 216
45! : 207
46! : 216
47! : 225
48! : 234
49! : 225
50! : 216
51! : 198
52! : 279
53! : 279
54! : 261
55! : 279
56! : 333
57! : 270
58! : 288
59! : 324
60! : 288
61! : 315
62! : 306
63! : 333
64! : 324
65! : 351
66! : 351
67! : 369
68! : 342
69! : 351
70! : 459
71! : 423
72! : 432
73! : 315
74! : 378
75! : 432
76! : 441
77! : 432
78! : 423
79! : 441
80! : 450
81! : 486
82! : 477
83! : 486
84! : 477
85! : 414
86! : 495
87! : 495
88! : 531
89! : 549
90! : 585
91! : 594
92! : 540
93! : 513
94! : 549
95! : 585
96! : 648
97! : 648
98! : 639
99! : 648
100! : 648
101! : 639
102! : 630
103! : 621
104! : 702
105! : 648
106! : 639
107! : 594
108! : 666
109! : 657
110! : 657
111! : 693
112! : 765
113! : 666
114! : 648
115! : 648
116! : 729
117! : 738
118! : 756
119! : 774
120! : 783
121! : 774
122! : 738
123! : 765
124! : 747
125! : 855
126! : 801
127! : 873
128! : 828
129! : 819
130! : 864
131! : 927
132! : 873
133! : 846
134! : 846
135! : 819
136! : 864
137! : 927
138! : 954
139! : 981
140! : 954
141! : 963
142! : 1026
143! : 936
144! : 1017
145! : 972
146! : 1017
147! : 954
148! : 1008
149! : 1107
150! : 1053
151! : 990
152! : 990
153! : 999
154! : 1062
155! : 1053
156! : 1098
157! : 1125
158! : 1134
159! : 1089
160! : 1107
161! : 1134
162! : 1125
163! : 1134
164! : 1098
165! : 1116
166! : 1188
167! : 1089
168! : 1188
169! : 1188
170! : 1179
171! : 1242
172! : 1215
173! : 1206
174! : 1215
175! : 1233
176! : 1215
177! : 1278
178! : 1368
179! : 1260
180! : 1305
181! : 1323
182! : 1287
183! : 1314
184! : 1323
185! : 1260
186! : 1296
187! : 1377
188! : 1422
189! : 1386
190! : 1350
191! : 1422
192! : 1404
193! : 1458
194! : 1395
195! : 1413
196! : 1422
197! : 1512
198! : 1395
199! : 1413
200! : 1404
201! : 1350
202! : 1404
203! : 1476
204! : 1494
205! : 1530
206! : 1584
207! : 1647
208! : 1602
209! : 1530
210! : 1548
211! : 1512
212! : 1593
213! : 1530
214! : 1674
215! : 1674
216! : 1575
217! : 1638
218! : 1665
219! : 1575
220! : 1701
221! : 1692
222! : 1665
223! : 1701
224! : 1773
225! : 1728
226! : 1728
227! : 1656
228! : 1638
229! : 1701
230! : 1746
231! : 1665
232! : 1809
233! : 1728
234! : 1872
235! : 1746
236! : 1755
237! : 1890
238! : 1818
239! : 1818
240! : 1926
241! : 1890
242! : 1971
243! : 1980
244! : 1863
245! : 1944
246! : 1827
247! : 1872
248! : 1935
249! : 1881
250! : 1953
251! : 1926
252! : 1917
253! : 2025
254! : 1926
255! : 1899
256! : 1989
257! : 1953
258! : 1863
259! : 1971
260! : 1962
261! : 2079
262! : 2088
263! : 2061
264! : 1953
265! : 2106
266! : 2124
267! : 2043
268! : 2133
269! : 2106
270! : 2151
271! : 2169
272! : 2133
273! : 1980
274! : 2088
275! : 2187
276! : 2043
277! : 2313
278! : 2367
279! : 2223
280! : 2241
281! : 2367
282! : 2340
283! : 2349
284! : 2241
285! : 2304
286! : 2313
287! : 2385
288! : 2322
289! : 2385
290! : 2313
291! : 2331
292! : 2412
293! : 2385
294! : 2358
295! : 2511
296! : 2484
297! : 2394
298! : 2376
299! : 2448
300! : 2466
301! : 2376
302! : 2511
303! : 2493
304! : 2394
305! : 2529
306! : 2457
307! : 2466
308! : 2430
309! : 2412
310! : 2646
311! : 2556
312! : 2565
313! : 2502
314! : 2601
315! : 2556
316! : 2637
317! : 2574
318! : 2655
319! : 2583
320! : 2700
321! : 2628
322! : 2808
323! : 2637
324! : 2610
325! : 2700
326! : 2727
327! : 2682
328! : 2718
329! : 2754
330! : 2655
331! : 2772
332! : 2853
333! : 2862
334! : 2835
335! : 2790
336! : 2907
337! : 2817
338! : 2925
339! : 2817
340! : 2754
341! : 2961
342! : 2835
343! : 2844
344! : 2844
345! : 2916
346! : 2808
347! : 2844
348! : 2970
349! : 2934
350! : 2952
351! : 2862
352! : 3123
353! : 2844
354! : 2925
355! : 3069
356! : 2952
357! : 2979
358! : 2979
359! : 3087
360! : 3024
361! : 2997
362! : 3060
363! : 3060
364! : 3087
365! : 3114
366! : 3024
367! : 3033
368! : 3132
369! : 3204
370! : 3186
371! : 3213
372! : 3195
373! : 3258
374! : 3186
375! : 3159
376! : 3249
377! : 3186
378! : 3132
379! : 3312
380! : 3240
381! : 3195
382! : 3204
383! : 3357
384! : 3339
385! : 3375
386! : 3366
387! : 3204
388! : 3348
389! : 3366
390! : 3321
391! : 3384
392! : 3474
393! : 3312
394! : 3348
395! : 3312
396! : 3582
397! : 3429
398! : 3528
399! : 3627
400! : 3402
401! : 3339
402! : 3366
403! : 3483
404! : 3474
405! : 3600
406! : 3528
407! : 3609
408! : 3465
409! : 3483
410! : 3447
411! : 3573
412! : 3672
413! : 3600
414! : 3654
415! : 3708
416! : 3618
417! : 3726
418! : 3708
419! : 3564
420! : 3672
421! : 3807
422! : 3690
423! : 3627
424! : 3636
425! : 3780
426! : 3618
427! : 3753
428! : 3636
429! : 3762
430! : 3807
431! : 3798
432! : 3897
433! : 3771
434! : 3834
435! : 3879
436! : 3780
437! : 3780
438! : 4059
439! : 3807
440! : 3726
441! : 3852
442! : 3861
443! : 3753
444! : 4041
445! : 3969
446! : 3825
447! : 3978
448! : 4023
449! : 4185
450! : 3825
451! : 3888
452! : 4059
453! : 4203
454! : 4140
455! : 4059
456! : 4176
457! : 4176
458! : 4149
459! : 3969
460! : 4077
461! : 4131
462! : 4158
463! : 4221
464! : 4041
465! : 4194
466! : 4275
467! : 4140
468! : 4257
469! : 4140
470! : 4275
471! : 4338
472! : 4284
473! : 4266
474! : 4419
475! : 4428
476! : 4383
477! : 4194
478! : 4356
479! : 4365
480! : 4356
481! : 4059
482! : 4320
483! : 4266
484! : 4302
485! : 4383
486! : 4329
487! : 4536
488! : 4509
489! : 4419
490! : 4284
491! : 4410
492! : 4608
493! : 4302
494! : 4455
495! : 4464
496! : 4374
497! : 4644
498! : 4527
499! : 4608
500! : 4599
501! : 4446
502! : 4518
503! : 4536
504! : 4671
505! : 4644
506! : 4527
507! : 4581
508! : 4671
509! : 4707
510! : 4644
511! : 4554
512! : 4635
513! : 4761
514! : 4563
515! : 4716
516! : 4698
517! : 4779
518! : 4860
519! : 4752
520! : 4761
521! : 4680
522! : 4698
523! : 4842
524! : 4815
525! : 4860
526! : 4761
527! : 4968
528! : 4986
529! : 4941
530! : 4977
531! : 4950
532! : 4923
533! : 4896
534! : 4932
535! : 4851
536! : 4977
537! : 4797
538! : 4986
539! : 4869
540! : 5202
541! : 5067
542! : 5085
543! : 4941
544! : 4968
545! : 5076
546! : 5112
547! : 5274
548! : 5121
549! : 4923
550! : 5139
551! : 4860
552! : 5337
553! : 4950
554! : 5067
555! : 5193
556! : 5409
557! : 5166
558! : 5247
559! : 5346
560! : 5139
561! : 5274
562! : 5202
563! : 5373
564! : 5265
565! : 5391
566! : 5301
567! : 5337
568! : 5472
569! : 5319
570! : 5265
571! : 5427
572! : 5400
573! : 5427
574! : 5364
575! : 5346
576! : 5337
577! : 5454
578! : 5265
579! : 5400
580! : 5373
581! : 5499
582! : 5562
583! : 5382
584! : 5427
585! : 5292
586! : 5706
587! : 5562
588! : 5499
589! : 5526
590! : 5562
591! : 5652
592! : 5562
593! : 5679
594! : 5328
595! : 5616
596! : 5724
597! : 5787
598! : 5697
599! : 5634
600! : 5715
601! : 5634
602! : 5760
603! : 5787
604! : 5589
605! : 5742
606! : 5661
607! : 5499
608! : 5823
609! : 5931
610! : 5823
611! : 5877
612! : 5823
613! : 5787
614! : 5832
615! : 5841
616! : 5850
617! : 5886
618! : 5778
619! : 5841
620! : 5922
621! : 6039
622! : 5859
623! : 6003
624! : 5931
625! : 5958
626! : 6120
627! : 5895
628! : 5904
629! : 5904
630! : 6057
631! : 6012
632! : 5931
633! : 5967
634! : 6147
635! : 5859
636! : 5859
637! : 6237
638! : 6210
639! : 6336
640! : 6057
641! : 6291
642! : 6021
643! : 6291
644! : 6021
645! : 6219
646! : 6156
647! : 6282
648! : 6012
649! : 6372
650! : 6300
651! : 6399
652! : 6372
653! : 6282
654! : 6246
655! : 6291
656! : 6318
657! : 6219
658! : 6453
659! : 6192
660! : 6516
661! : 6408
662! : 6444
663! : 6147
664! : 6417
665! : 6381
666! : 6327
667! : 6498
668! : 6462
669! : 6453
670! : 6363
671! : 6489
672! : 6417
673! : 6480
674! : 6615
675! : 6453
676! : 6561
677! : 6831
678! : 6444
679! : 6444
680! : 6444
681! : 6417
682! : 6534
683! : 6687
684! : 6786
685! : 6651
686! : 6687
687! : 6615
688! : 6777
689! : 6795
690! : 6876
691! : 6966
692! : 6957
693! : 6669
694! : 6822
695! : 6831
696! : 6696
697! : 6741
698! : 6957
699! : 6885
700! : 6723
701! : 6777
702! : 6741
703! : 6849
704! : 6840
705! : 6678
706! : 6849
707! : 6831
708! : 6957
709! : 7065
710! : 7056
711! : 7092
712! : 6966
713! : 6876
714! : 7083
715! : 6912
716! : 7191
717! : 7101
718! : 7020
719! : 7191
720! : 7164
721! : 6957
722! : 7110
723! : 7047
724! : 7092
725! : 6957
726! : 7083
727! : 7182
728! : 7407
729! : 7065
730! : 7254
731! : 7137
732! : 7254
733! : 7155
734! : 7155
735! : 7128
736! : 7515
737! : 7317
738! : 7029
739! : 7461
740! : 7263
741! : 7218
742! : 7425
743! : 7317
744! : 7326
745! : 7362
746! : 7641
747! : 7452
748! : 7263
749! : 7380
750! : 7416
751! : 7263
752! : 7398
753! : 7524
754! : 7533
755! : 7308
756! : 7524
757! : 7452
758! : 7488
759! : 7434
760! : 7461
761! : 7488
762! : 7353
763! : 7731
764! : 7470
765! : 7641
766! : 7461
767! : 7272
768! : 7542
769! : 7569
770! : 7713
771! : 7704
772! : 7767
773! : 7551
774! : 7776
775! : 7596
776! : 7722
777! : 7875
778! : 7659
779! : 7686
780! : 7659
781! : 7677
782! : 7776
783! : 7686
784! : 7983
785! : 7857
786! : 7938
787! : 8001
788! : 7839
789! : 7965
790! : 7929
791! : 8109
792! : 7812
793! : 7938
794! : 8001
795! : 8001
796! : 8091
797! : 8100
798! : 7884
799! : 8001
800! : 7929
801! : 7965
802! : 7947
803! : 8127
804! : 7947
805! : 7965
806! : 7812
807! : 8028
808! : 8217
809! : 8208
810! : 8181
811! : 8280
812! : 8028
813! : 8037
814! : 8298
815! : 8172
816! : 8424
817! : 8127
818! : 8235
819! : 8001
820! : 8163
821! : 8307
822! : 8496
823! : 8181
824! : 8172
825! : 8415
826! : 8343
827! : 8424
828! : 8217
829! : 8361
830! : 8397
831! : 8433
832! : 8307
833! : 8649
834! : 8352
835! : 8370
836! : 8514
837! : 8514
838! : 8082
839! : 8568
840! : 8316
841! : 8370
842! : 8478
843! : 8649
844! : 8658
845! : 8541
846! : 8550
847! : 8388
848! : 8622
849! : 8586
850! : 8586
851! : 8595
852! : 8649
853! : 8550
854! : 8694
855! : 8685
856! : 8694
857! : 8676
858! : 8685
859! : 8793
860! : 8667
861! : 8802
862! : 8757
863! : 8901
864! : 8937
865! : 8694
866! : 8946
867! : 8820
868! : 8829
869! : 9000
870! : 9009
871! : 9009
872! : 8955
873! : 8811
874! : 8883
875! : 8928
876! : 8928
877! : 8982
878! : 8757
879! : 8901
880! : 9090
881! : 8973
882! : 9117
883! : 8946
884! : 8838
885! : 9099
886! : 9189
887! : 9099
888! : 9072
889! : 8811
890! : 9054
891! : 9054
892! : 8865
893! : 9063
894! : 9126
895! : 9189
896! : 9135
897! : 9045
898! : 9216
899! : 9090
900! : 9324
901! : 9162
902! : 9324
903! : 9081
904! : 9045
905! : 9414
906! : 9153
907! : 9369
908! : 9333
909! : 9486
910! : 9126
911! : 9081
912! : 9477
913! : 9198
914! : 9468
915! : 9504
916! : 9603
917! : 9360
918! : 9396
919! : 9477
920! : 9423
921! : 9522
922! : 9450
923! : 9702
924! : 9432
925! : 9594
926! : 9558
927! : 9630
928! : 9549
929! : 9477
930! : 9675
931! : 9549
932! : 9702
933! : 9540
934! : 9738
935! : 9666
936! : 9729
937! : 9801
938! : 9657
939! : 9810
940! : 9729
941! : 9513
942! : 9612
943! : 9774
944! : 9684
945! : 9702
946! : 9675
947! : 9504
948! : 9792
949! : 9684
950! : 9639
951! : 10035
952! : 9855
953! : 9774
954! : 9783
955! : 9990
956! : 9999
957! : 9954
958! : 9945
959! : 9981
960! : 9954
961! : 9999
962! : 9900
963! : 10071
964! : 10125
965! : 10080
966! : 9828
967! : 10116
968! : 10143
969! : 10089
970! : 10134
971! : 9711
972! : 10053
973! : 10314
974! : 10035
975! : 10278
976! : 9990
977! : 10053
978! : 10179
979! : 10413
980! : 10134
981! : 10341
982! : 10458
983! : 9990
984! : 10296
985! : 10053
986! : 10296
987! : 10206
988! : 10287
989! : 10332
990! : 10467
991! : 10287
992! : 10296
993! : 10251
994! : 10584
995! : 10395
996! : 10233
997! : 10368
998! : 10287
999! : 10539
1000! : 10539
サンプルコード
階乗$n!$の各桁の数の総和を求めるJulia言語のコードです。
function main() for max = 1:1000 factorial = 1 for i = 1:max num = BigInt(i) factorial = factorial * num end fstr = string(factorial) sum = 0 for i = 1:length(fstr) num = parse(Int,fstr[i]) sum = sum + num end println(max, " ", sum) end end @time main()