æ¥éã«å€§ãããªãæ°ã®ä»£è¡šãšããŠéä¹ã®æ°ãããç»å Žããã
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = 6227020800
14! = 87178291200
15! = 1307674368000
16! = 20922789888000
17! = 355687428096000
18! = 6402373705728000
19! = 121645100408832000
20! = 2432902008176640000
ã®æ§ã«5!以éã¯æåŸã«ã¯0ãããã€ã䞊ãã§ããŸããã®ãšãªã£ãŠããã
ããã§æåŸã«äžŠã¶0ãåãé€ãã°
14!->871782912 ã®9åã®æ°åã䞊ã³
15!->1307674368ã®10åã®æ°ã䞊ã¶
ããã§ãã®å
äžè¬ã«n!ã«ãããŠæåŸã«äžŠã¶0ã¯çããŠãã®æåã«äžŠã¶ããšã«æã10åã®äžŠã³ãF(n)ã§è¡šãããšã«ãããš
F(16)=0922789888=>922789888
F(17)=5687428096
F(18)=2373705728
F(19)=5100408832
F(20)=200817664
ãªããã®ãšèšå·ãå®çŸ©ããŠããã
ãããäŸãæå
ã«ã³ã³ãã¥ãŒã¿ãããã«ããŠã
F(100000000)
F(10^9)
F(10^10)
蟺ãããéåžžã®ã¡ã¢ãªãŒã®æèŒã§ã¯ããåãä»ããªããªã£ãŠæ¥ããããã®èšç®ãæ³å以äžã«æéããããã
æã§n!ã®å€ã¯ãã®å
ããã£ãšç¶ããå®çŸ©ã¯ã¡ãããšãããŠããã®ã§ããã®åŸæ¥ã®æ¢ãæ¹ã«é Œããªãæ¹æ³ã
ç·šã¿åºããæ¬¡ã®éä¹ã§ã®æåŸã«äžŠã¶ã§ããã10åã®æ°åãèŠã€ããŠã»ããã
(1)F(100)
(2)F(10^12)
(3)F(10^100)
ãšãããã10åãŸã§ã
åã£ãŠãŸãããïŒ
f(20) = 200817664
f(30) = 5863630848
f(40) = 6115894272
f(50) = 1568960512
f(60) = 2776964096
f(70) = 8984531968
f(80) = 6728081408
f(90) = 4469978112
f(100) = 5210916864
f(200) = 389737472
f(300) = 8808170496
f(400) = 5032491008
f(500) = 5547812864
f(600) = 3891178496
f(700) = 2517264384
f(800) = 8969450496
f(900) = 2530962432
f(1000) = 27753472
f(2000) = 807339008
f(3000) = 4872042496
f(4000) = 5802602496
f(5000) = 937833472
f(6000) = 8127287296
f(7000) = 993752064
f(8000) = 4026732544
f(9000) = 9915703296
f(10000) = 8001579008
f(100000) = 4957162496
f(1000000) = 5058412544
f(10000000) = 2574194688
f(100000000) = 2840754176
f(1000000000) = 933638144
ããããå
ã®æŠç¥ãé ã®äžã«ã¯ãããŸããããããŸã§ã確èªããåŸã«ãããã®ã§ã
å®å
šã«åãã«ãªã£ãŠããŸãã
ããã£ããåèã«ãããã®ã§ã³ãŒããæ²èŒããŠãããŠãããŸãããïŒ
ããã£ãã§ãã
ã³ãŒããããã¢ã«ãŽãªãºã ãæ¥æ¬èªã§æžããšããæ¹ããããšæããŸãã®ã§ããã£ã¡çœ®ããšããŸããã
16âŠnâŠæ°åã®å Žåãæ³å®ããŸãã
æŽæ°nãçŽ å æ°ã«5ãmåãã€ãšããŠãg(n) = n*(4882813/5)^mãšããŸãã
éä¹ã®ä»£ããã«g(1)ããg(n)ãŸã§ã®ãã¹ãŠã®ç©ããšã£ãŠ5^10ã§å²ã£ãäœããæ±ãããšãf(n)ã5^10ã§å²ã£ãäœããåŸãããŸãã
ããã¯ãç©ãèšç®ãããã³ã«äœããæ±ããããšã§éãããæ¡æ°å
ã§ã§èšç®ã§ããŸãã
ïŒå®éã¯4882813ã®çޝä¹ãåŸãããŸãšããŠèšç®ããŠããŸãïŒ
æ±ããå€ã«1787109376ãæããŠ10^10ã§å²ã£ãäœããåããšãf(n)ã®å€ãããããŸãã
ïŒnâ§16ã ãšf(n)ãå¿
ã2^10ã®åæ°ã§ããããšãå©çšããŠããã®ã§ãnâŠ15ã§ã¯èª€ã£ãå€ãåºãŸãïŒ
DD++æ°ã®ã¢ã€ãã¢ãããã°ã©ã ããŠã¿ãã
gp > f(n)={r1=4882813;r2=1787109376;}lift(Mod(lift(Mod(prod(i=1,n,i*(r1/5)^valuation(i,5)),5^10))*r2,10^10))
gp > for(n=1,9,print("10^"n";"f(10^n)))
10^1;625036288
10^2;5210916864
10^3;27753472
10^4;8001579008
10^5;4957162496
10^6;5058412544
ããããå
ã¯ãšãŠãæéãå¿
èŠãšãªã£ãŠãããŸããã
確ãã«æ£ç¢ºã«0ãããªã ãããåŸã®äž10åã®æ°ã䞊ã¶ããšãã§ããŸããã
ãšããã§äžæè°ãªã®ã¯r1,r2ã®å€ã¯äœåŠããçŸããã®ã§ããããïŒ
r1,r2以å€ã«ããã®ãããªæ§è³ªãæãã(r1,r2)ã®çµã¯åããã®ã§ããããïŒ
C++ã ãš10^9ã§ãã¡ãã£ãšäžæãããã®æéã§åºãŠããŸããããèšèªã«ããé床差ã£ãŠæå€ãšå€§ããã®ã§ããã
ãããã¯ã(r1/5)ã®çޝä¹ã®ãšããã§mod5^10ã®çµæã ããããã°ããã®ã«åŸåã«çޝä¹ã®çµæãåºããŠããmodåã£ãŠãããã§äžéšæ°å€ã§æ¡æ°ãççºããŠãã圱é¿ããªïŒ
r1ãšr2ã¯ã
r1 = (5^10+1)/2
r2 = 183*5^10+1 = 1745224*2^10
ã§ãã
ã€ãŸãã
mod5^10ã«ãããŠr1ãæããè¡çºã¯å®è³ª2ã§å²ãæäœã«çžåœããŸãã
ãŸããr2ã¯
xâ¡k (mod5^10)
xâ¡0 (mod2^10)
ãé£ç«ããçµæã
xâ¡r2*k (mod10^10)
ã§ããããšã«ç±æ¥ããŸãã
ããŸãèªä¿¡ããããŸãããã
F(10^100)=3738735616
ã§ããïŒ
åãïŒ
ããã¿ãªåãå€ã§ãã
ã©ãã»ã©ã®æéãããããŸãããïŒ
ããã°ã©ã ã®æŠèŠã解説ãé¡ãããŸãã
çŽ2åã§ããâåŸã«é«éåããŠçŽ16ç§ã«ãªããŸãã
(10^100)!ããçŽ å æ°2ãš5ãé€ãããã®ãmod10^10ã§èšç®ãã
2^(75*10^98-87)ãmod10^10ã§èšç®ããŠæãåãããäžäœ10æ¡ã§ãã
åŸè
ã¯ç°¡åã§ããã
åè
ã¯
1ïœ10^100ã2^mÃ5^nÃNïŒNã¯2ã§ã5ã§ãå²ãåããªãæ°ïŒã®
m,nã§24002éãã«åé¡ãããããããmod10^10ã§èšç®ããŠmod10^10ã§æããŸãã
ãšãããã10^10ãŸã§ãèšç®ããã
1Ã3Ã7Ã9Ã11Ã13ÃâŠÃ9999999999â¡1 (mod10^10)
ãšããããšãããããŸããã®ã§ãäŸãã°
1Ã3Ã7Ã9ÃâŠÃ3141592653589793238462643383279 (mod10^10)
ãèšç®ããããšãã¯çµå€ã¯äžäœ10æ¡ã ããšã£ãŠ
1Ã3Ã7Ã9ÃâŠÃ2643383279 (mod10^10)
ãèšç®ããã°ååã§ããããã䜿ã£ãŠ
(m,n)=(0,0): 1Ã3Ã7Ã9ÃâŠÃ(10^100-1) â¡ 1Ã3Ã7Ã9ÃâŠÃ9999999999 â¡ 1
(m,n)=(1,0): 1Ã3Ã7Ã9ÃâŠÃ(10^50-1) â¡ åæ§ã«1
ã»ã»ã»
(m,n)=(191,44): çµå€(10^100/2^191/5^44äœãåãæšãŠ)ã®äžäœ10æ¡ããšã£ãŠ 1Ã3ÃâŠÃ519385729 â¡ 9917681069
âããã¯åãªãäŸã§ã
ã»ã»ã»
ãããŠããã24002åã®æ°ãmod10^10ã§æãåããããš5385817123ã§ã
2^(75*10^98-87)â¡6813576192ãæããŠ3738735616ãç®åºããŸããã
1Ã3Ã7Ã9ÃâŠÃ9999999999 ã®mod10^10ã§ã®èšç®ã2å匱ã§ã
24002éãã®èšç®ãé«éåããããã«éäžèšç®ã§åŸããã
1Ã3Ã7Ã9ÃâŠÃ9999
1Ã3Ã7Ã9ÃâŠÃ19999
1Ã3Ã7Ã9ÃâŠÃ29999
ã»ã»ã»
1Ã3Ã7Ã9ÃâŠÃ9999999999
ïŒå
šãŠmod10^10ïŒãèŠçŽ æ°1000000ã®é
åã«ä¿æãã
24002éããããããæå€§çŽ4000åã®ä¹ç®ã§æžãããã«ããçµæã
1Ã3Ã7Ã9ÃâŠÃ9999999999ã®èšç®ä»¥å€ã¯èª€å·®çšåºŠã®æéã«ãªããŸããã
(22:28远èš)
1Ã3Ã7Ã9Ã11ÃâŠ(mod 10^10)ã®èšç®ã§10^10æªæºã®æ°ã®ç©ãæ±ããã®ã«
64ãããã§ã¯è¶³ãã128ãããæŒç®ããŠããã®ã§ããã
128ãããã®modæŒç®ããããé
ãã£ãã®ã§mod 2^10ãšmod 5^10ãå¥ã
ã«æ±ããŠ
nâ¡a (mod 2^10), nâ¡b (mod 5^10) ã®ãšã
nâ¡8212890625a+1787109376b (mod 10^10)
ã§æ±ããããã«ãããšãããå®è¡æéã¯çŽ2åâçŽ16ç§ã«ãªããŸããã
é«éåã«ãããO(n)ã ã£ãã®ãO(logn)ã«æ¹åã
10^18ã«å¯ŸããŠpaiza.ioç°å¢ã§0.08sã§æ±ãŸãããã«ãªããŸããã
ïŒçµæèªäœã¯ããããããã«å£ããã®ã§ãããä»åŸã®èªåã®ãããã°çšãå
ŒããŠïŒ
f(10^2) = 5210916864
f(10^3) = 27753472
f(10^4) = 8001579008
f(10^5) = 4957162496
f(10^6) = 5058412544
f(10^7) = 2574194688
f(10^8) = 2840754176
f(10^9) = 933638144
f(10^10) = 6441946112
f(10^11) = 1378167808
f(10^12) = 283416576
f(10^13) = 9067109376
f(10^14) = 4534834176
f(10^15) = 2576510976
f(10^16) = 9755143168
f(10^17) = 3894653952
f(10^18) = 5407435776
ããšã¯å€å鷿޿°ã䜿ãã°10^100ã§ãäžç¬ã ãšæããŸããã
ããããçŸãããªãã®ã§2^63以å
ã®èšç®ã ãã§ãªããšããªããªãã詊è¡é¯èª€äžã
ãã£ããããã°ã©ã ãäœã£ãã®ã§å€§ããæ¹ãã
F(10^100) = 3738735616
F(10^200) = 6923037696
F(10^300) = 9519908864
F(10^400) = 2065393664
F(10^500) = 6678018048
F(10^600) = 9989215232
F(10^700) = 6221698048
F(10^800) = 3924201472
F(10^900) = 1886432256
F(10^1000) = 1896479744
F(10^2000) = 4883249152
F(10^3000) = 6688616448
F(10^4000) = 8291796992
ã§ãåã£ãŠãããã©ããã¯ããããŸããã
(10^4000)!ãšãã巚倧ãããŠæ³åãã«ããã§ããã
(10^100)!ã§ãåå倧ããã§ããã
ã©ãããäžèŽããŠããã§ãã
f(10^10) = 6441946112
f(10^20) = 8474436608
f(10^30) = 6117305344
f(10^40) = 6605049856
f(10^50) = 5791409152
f(10^60) = 1279752192
f(10^70) = 8388129792
f(10^80) = 2060969984
f(10^90) = 6590068736
f(10^100) = 3738735616
f(10^200) = 6923037696
f(10^300) = 9519908864
f(10^400) = 2065393664
f(10^500) = 6678018048
f(10^600) = 9989215232
f(10^700) = 6221698048
f(10^800) = 3924201472
f(10^900) = 1886432256
f(10^1000) = 1896479744
f(10^2000) = 4883249152
f(10^3000) = 6688616448
f(10^4000) = 8291796992
f(10^5000) = 5123908608
f(10^6000) = 2555037696
f(10^7000) = 5540568064
f(10^8000) = 9098052608
f(10^9000) = 4882372608
f(10^10000) = 4592166912
f(10^20000) = 310350848
f(10^30000) = 8320806912
f(10^40000) = 1363283968
f(10^50000) = 7217645568
f(10^60000) = 5054093312
f(10^70000) = 7207071744
f(10^80000) = 6996748288
f(10^90000) = 3016684544
f(10^100000) = 9734950912 (0.46sec)
f(10^150000) = 4346172416 (0.83sec)
f(10^200000) = 9418829824 (1.32sec)
f(10^250000) = 7569364992 (1.94sec)
ãã®èŸºãpaiza.ioç°å¢ïŒå®è¡æé2ç§å¶éïŒã§ã®éçã§ããã
以äžãèªåç°å¢
f(10^300000) = 5518877696
f(10^400000) = 6031537152
f(10^500000) = 7823699968
f(10^600000) = 4702614528
f(10^700000) = 5214944256
f(10^800000) = 6104402944
f(10^900000) = 7742903296
f(10^1000000) = 8226093056
10^nã«å¯ŸããŠãäž»èŠéšåã®èšç®ã¯O(n)ã§æžãã§ãã®ã«ã
åèšç®ã®ã2^nãäºé²æ°ã§æ±ããããšããéšåã§O(n^2)ããã£ãŠãæ®å¿µãã
巚倧ãªçޝ乿°ã®åºæ°å€æãO(n*logn)ãããã§ããå®è£
ãç°¡åãªã¢ã«ãŽãªãºã ãªãã§ãããïŒ
ã«ã©ããæ³ã䜿ãã°O(n^1.59)ããããŸã§ã¯æ¹åãããã©æžãã®ãé¢åâŠâŠã
f(10^100) = 3738735616
ãšåãå€3738735616
ãåãä»ã®
f(s) ïœ<10^100ã®å€ã¯ååšããã®ã§ãã?
ã³ãŒãæžããŠãéäžã§æ°ã¥ãããã§ããã
f(4*5^20*n) = f(4*5^19*n)
ãæãç«ã€ã®ã§ã
2*10^99ã4*10^98ã以äž2^81*10^19ãŸã§ã®81åã¯åãå€ã«ãªããŸããã
2^82*10^18ãäžèŽãããã©ããã¯âŠâŠ9*10^18以äžã¯10ã®çޝä¹ç¹åã®ãã€ããæå
ã«ãªãã®ã§ããããŸããã
f(s)=3738735616 ãšãªãsã¯
16257603, 19004367, 20867632, 21217365, 33069263,
42564599, 42631627, 45460609, 52492698, 53300341, âŠ
ã®ããã«ããããããããã§ãã
æå°ã®s㯠16257603 ã§ãã
f(n)ã10âŠnâŠ10000
ã®äžã§åãå€ãžè³ãçµåããæ¢ããŠã¿ãã
[484,8121]==>395157504
[600,3734]==>3891178496
[724,3900]==>8483543424
[1091,7460]==>608149504
[1260,5976]==>3417107456
[1899,2110]==>4827099136
[1928,2625]==>9962140672
[4152,7094]==>9036347392
[4177,9681]==>7609266176
[5051,5145]==>8307800064
[5763,8822]==>5245555712
[6674,9771]==>6639161344
ã®12çµãããŸããã
[99,100],[999,1000],[9999,10000]ã¯é€ããŠããŸãã
äœãæ³åãèŠããŠããªãããªïœ
åãã£ãŠ
f(10^100)=f(16257603)
ã倿ã§ããã°ãã£ãšçæéã§æã«å
¥ãã®ã«ïœ¥ïœ¥ïœ¥
ãªããã®çåã¯Euler Projectã§ã®problem 160ããçºçããŠããŠ
ããã§ã¯10æ¡ã§ã¯ãªã5æ¡ã§ã®åé¡ã§ãã(5æ¡ã®æ°åãæ¢ã颿°ãf5ãšããŠããŸããïŒ
解決ã®äžã€ã®æ¹æ³ãšããŠ
if n%2500==0ãªãä»»æã®æ£æŽæ°xã«å¯Ÿã
f5(n)=f5(n*5^x)ãæç«ããããšãå©çšã
f5(10^12)=f5(256000*5^8)
ã§256000%2500==0ãæºããã®ã§
ãããã=f5(256000)
ã調æ»ããããšã§
ãããã=16576
ã§è§£æ±ºã§ããããæ¹ããããšãããïŒéåæ¡æ°ãç¯çŽã§ãã)
ãã®æ¹æ³ã¯5æ¡ã«éã£ãŠæç«ããããã§10æ¡ã§ã¯ãºã¬ãŠããŸããŸãã
ããã«ä»£ããæ¹æ³ïŒæ³åïŒã¯ç¡ããã®ãïŒ
ãŸãã«ç§ãèšã£ã
f(4*5^20*n) = f(4*5^19*n)ãããªãã§ãããã
5æ¡ã ãš
f(4*5^5*n) = f(4*5^4*n)
ã§æç«ãããã§ããã
ãšããããšã¯ã10æ¡ã ãš
f(4*5^10*n) = f(4*5^9*n)
ã§æãç«ã€ã®ããªïŒ
ããšãProject Eulerã¯åé¡101以éã¯è§£æ³èšåçŠæ¢ãªã®ã§ã
å°ãªããšã衚åãã¯ãProject Eulerãšã¯ç¡é¢ä¿ã«æãã€ããåé¡ã§ããã«ããšããªããšãŸããæ°ãã
f(4*5^20*n) = f(4*5^19*n)ã®çåŒã¯
f(4*5^19*n) = f(4*5^18*n) = f(4*5^17*n)== f(4*5^9*n)
ãŸã§äŒžã°ããŸããããïŒ(äžæ¹ãžã¯5^xã®éšåã¯ã©ããŸã§ãOK)
åŸã£ãŠ
f(10^100)=f(4*5^100*2^98)=f(4*2^98*5^9)=f(2^100*5^9)=f(2475880078570760549798248448000000000)
ãŸã§æ¡ãäžããŠèª¿æ»ã§ã(101æ¡ã37æ¡ã«çž®å°å)
ãããèšç®ãããŠ
%=3738735616
ãæã«å
¥ãã
ãããã©ããªãã§ããããã
æãã€ãããšã¯ãããŸãããProject Eulerã®101以éã®åé¡ã§ãããšåèšãããŠããŸã£ã以äžãè§£æ³ã«ã€ãªããããšãè¿éã«èšããªããªã£ãŠããŸããŸããã®ã§ã
Project Eulerã®101以éã®åé¡ã§ãããšåèšãããŠããŸã£ã以äžãè§£æ³ã«ã€ãªããããšãè¿éã«èšããªãã»ã»ã»
ãããªèŠåããã£ããšã¯æã£ãŠãããŸããã§ããã
ã§ãOEISã§ã¯
A347105ãªã©ã§ã¯
Project Euler, Digital root sums of factorisations, Problem 159.
ã®æ§ã«ãªã³ã¯ãšå
±ã«è§£æ±ºã«çŽæ¥çµã³ã€ãçµæããããããªã³ãŒãã§ã®ããã°ã©ã ãšãšãã«
æ°å€ã䞊ã³å
¬éãããŠããŸãã
ãã®æ§ã«è§£æ±ºããã®ã«å€§ãã«åèã«ãªãæ
å ±ã¯ãããããªæã«ã¢ã¯ã»ã¹å¯èœã®ç¶æ
ã«ãããŸãã
ãŸããã®ããã¯AIïŒChatGTPãGemminiãCopilotãªã©ãªã©)ã«ããã°ã©ã ã奜ããªã³ãŒãã§äœã£ãŠãããããã«
é Œãã°é£ãªã瀺ããŠãããŸãã
ãã ãããäœãé Œãã«ã¯ãªããŸãããã»ã»ã»
ã§ãèããæ¹åæ§ãªã©ã¯çªºãç¥ãããšã¯ã§ããŸãã
DD++ãããããããããŠããã®ã¯ãã®è§£æ±ºã«åèã«ãªãããšã¯äžå衚ã«ã¯åºããŠã¯ãããªããã®ã ãšãã
ãèãããæã¡ã ãããªã®ã§ããïŒ