Hex Artifact Content
Not logged in

Artifact 805872cfb459b818bf6cff89d898ed41a741eb8e:


0000: 69 6d 70 6f 72 74 20 6a 61 76 61 2e 6d 61 74 68  import java.math
0010: 2e 42 69 67 49 6e 74 65 67 65 72 3b 0d 0a 0d 0a  .BigInteger;....
0020: 70 75 62 6c 69 63 20 63 6c 61 73 73 20 56 65 72  public class Ver
0030: 79 53 6d 6f 6f 74 68 44 65 63 6f 6d 70 6f 73 69  ySmoothDecomposi
0040: 74 69 6f 6e 73 0d 0a 7b 0d 0a 20 20 20 70 75 62  tions..{..   pub
0050: 6c 69 63 20 69 6e 74 20 73 6f 6c 76 65 28 53 74  lic int solve(St
0060: 72 69 6e 67 5b 5d 20 64 69 67 69 74 73 29 0d 0a  ring[] digits)..
0070: 20 20 20 7b 0d 0a 20 20 20 20 20 20 2f 2f 20 82     {..      // .
0080: c6 82 e8 82 a0 82 a6 82 b8 42 69 67 49 6e 74 65  .........BigInte
0090: 67 65 72 82 c9 82 b7 82 e9 0d 0a 20 20 20 20 20  ger........     
00a0: 20 53 74 72 69 6e 67 20 73 74 72 20 3d 20 22 22   String str = ""
00b0: 3b 0d 0a 20 20 20 20 20 20 66 6f 72 28 53 74 72  ;..      for(Str
00c0: 69 6e 67 20 73 20 3a 20 64 69 67 69 74 73 29 20  ing s : digits) 
00d0: 73 74 72 20 2b 3d 20 73 3b 0d 0a 20 20 20 20 20  str += s;..     
00e0: 20 72 65 74 75 72 6e 20 73 6f 6c 76 65 28 6e 65   return solve(ne
00f0: 77 20 42 69 67 49 6e 74 65 67 65 72 28 73 74 72  w BigInteger(str
0100: 29 29 3b 0d 0a 20 20 20 7d 0d 0a 20 20 20 0d 0a  ));..   }..   ..
0110: 20 20 20 69 6e 74 20 73 6f 6c 76 65 28 42 69 67     int solve(Big
0120: 49 6e 74 65 67 65 72 20 76 29 0d 0a 20 20 20 7b  Integer v)..   {
0130: 0d 0a 20 20 20 20 20 20 2f 2f 20 82 c6 82 e8 82  ..      // .....
0140: a0 82 a6 82 b8 95 81 92 ca 82 c9 91 66 88 f6 90  ............f...
0150: 94 95 aa 89 f0 82 b7 82 e9 0d 0a 20 20 20 20 20  ...........     
0160: 20 69 6e 74 5b 5d 20 70 73 20 3d 20 7b 32 2c 33   int[] ps = {2,3
0170: 2c 35 2c 37 2c 31 31 2c 31 33 7d 3b 0d 0a 20 20  ,5,7,11,13};..  
0180: 20 20 20 20 69 6e 74 5b 5d 20 66 73 20 3d 20 7b      int[] fs = {
0190: 30 2c 30 2c 30 2c 30 2c 20 30 2c 20 30 7d 3b 0d  0,0,0,0, 0, 0};.
01a0: 0a 20 20 20 20 20 20 66 6f 72 28 69 6e 74 20 69  .      for(int i
01b0: 3d 30 3b 20 69 3c 70 73 2e 6c 65 6e 67 74 68 3b  =0; i<ps.length;
01c0: 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 20 20 20   ++i)..         
01d0: 66 6f 72 28 42 69 67 49 6e 74 65 67 65 72 20 70  for(BigInteger p
01e0: 3d 42 69 67 49 6e 74 65 67 65 72 2e 76 61 6c 75  =BigInteger.valu
01f0: 65 4f 66 28 70 73 5b 69 5d 29 3b 20 76 2e 72 65  eOf(ps[i]); v.re
0200: 6d 61 69 6e 64 65 72 28 70 29 2e 65 71 75 61 6c  mainder(p).equal
0210: 73 28 42 69 67 49 6e 74 65 67 65 72 2e 5a 45 52  s(BigInteger.ZER
0220: 4f 29 3b 20 76 3d 76 2e 64 69 76 69 64 65 28 70  O); v=v.divide(p
0230: 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ))..            
0240: 66 73 5b 69 5d 2b 2b 3b 0d 0a 20 20 20 20 20 20  fs[i]++;..      
0250: 69 66 28 20 21 76 2e 65 71 75 61 6c 73 28 42 69  if( !v.equals(Bi
0260: 67 49 6e 74 65 67 65 72 2e 4f 4e 45 29 20 29 0d  gInteger.ONE) ).
0270: 0a 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e  .         return
0280: 20 30 3b 20 2f 2f 20 31 37 88 c8 8f e3 82 cc 91   0; // 17.......
0290: 66 88 f6 90 94 82 aa 82 a0 82 c1 82 bd 82 e7 96  f...............
02a0: b3 97 9d 0d 0a 20 20 20 20 20 20 72 65 74 75 72  .....      retur
02b0: 6e 20 73 6f 6c 76 65 28 66 73 5b 30 5d 2c 20 66  n solve(fs[0], f
02c0: 73 5b 31 5d 2c 20 66 73 5b 32 5d 2c 20 66 73 5b  s[1], fs[2], fs[
02d0: 33 5d 29 3b 20 2f 2f 20 31 31 20 82 c6 20 31 33  3]); // 11 .. 13
02e0: 20 82 cd 82 bb 82 cc 82 dc 82 dc 8e 67 82 a4 82   ...........g...
02f0: b5 82 a9 82 c8 82 a2 82 cc 82 c5 96 b3 8e 8b 0d  ................
0300: 0a 20 20 20 7d 0d 0a 0d 0a 20 20 20 2f 2f 20 82  .   }....   // .
0310: b1 82 b1 82 a9 82 e7 82 aa 96 7b 91 e8 20 20 20  ..........{..   
0320: 0d 0a 20 20 20 69 6e 74 20 73 6f 6c 76 65 28 69  ..   int solve(i
0330: 6e 74 20 70 32 2c 20 69 6e 74 20 70 33 2c 20 69  nt p2, int p3, i
0340: 6e 74 20 70 35 2c 20 69 6e 74 20 70 37 29 0d 0a  nt p5, int p7)..
0350: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 2f 2f 20     {..       // 
0360: 64 70 32 33 5b 61 5d 5b 62 5d 20 3d 20 81 75 32  dp23[a][b] = .u2
0370: 82 aa 61 8c c2 81 41 33 82 aa 62 8c c2 81 41 82  ..a...A3..b...A.
0380: a0 82 e9 82 c6 82 ab 82 c9 89 bd 92 ca 82 e8 8d  ................
0390: ec 82 ea 82 e9 82 a9 81 76 0d 0a 20 20 20 20 20  ........v..     
03a0: 20 20 69 6e 74 20 50 32 20 3d 20 70 32 2b 31 3b    int P2 = p2+1;
03b0: 0d 0a 20 20 20 20 20 20 20 69 6e 74 20 50 33 20  ..       int P3 
03c0: 3d 20 70 33 2b 31 3b 0d 0a 20 20 20 20 20 20 20  = p3+1;..       
03d0: 69 6e 74 5b 5d 20 64 70 32 33 20 3d 20 6e 65 77  int[] dp23 = new
03e0: 20 69 6e 74 5b 50 32 2a 50 33 5d 3b 20 64 70 32   int[P2*P3]; dp2
03f0: 33 5b 30 5d 20 3d 20 31 3b 20 2f 2f 20 30 8c c2  3[0] = 1; // 0..
0400: 30 8c c2 82 c8 82 e7 31 92 ca 82 e8 0d 0a 20 20  0......1......  
0410: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20       {..        
0420: 20 20 2f 2f 20 2d 20 7b 32 7d 82 f0 8d ec 82 e9    // - {2}......
0430: 89 c2 94 5c 90 ab 82 be 82 af 82 f0 8d 6c 82 a6  ...\.........l..
0440: 82 bd 8f ea 8d 87 82 cc 90 94 0d 0a 20 20 20 20  ............    
0450: 20 20 20 20 20 20 2f 2f 20 2d 20 7b 32 2c 34 7d        // - {2,4}
0460: 82 f0 8d ec 82 e9 89 c2 94 5c 90 ab 82 be 82 af  .........\......
0470: 82 f0 8d 6c 82 a6 82 bd 8f ea 8d 87 82 cc 90 94  ...l............
0480: 0d 0a 20 20 20 20 20 20 20 20 20 20 2f 2f 20 2d  ..          // -
0490: 20 2e 2e 2e 0d 0a 20 20 20 20 20 20 20 20 20 20   .....          
04a0: 2f 2f 20 2d 20 7b 32 2c 34 2c 38 2c 31 36 2c 33  // - {2,4,8,16,3
04b0: 2c 39 2c 36 2c 31 32 7d 20 82 f0 8d ec 82 e9 89  ,9,6,12} .......
04c0: c2 94 5c 90 ab 82 f0 8d 6c 82 a6 82 bd 91 53 95  ..\.....l.....S.
04d0: 94 82 cc 8f ea 8d 87 82 cc 90 94 0d 0a 20 20 20  .............   
04e0: 20 20 20 20 20 20 20 2f 2f 20 82 f0 81 41 95 5c         // ...A.\
04f0: 82 f0 8d 58 90 56 82 b5 82 c8 82 aa 82 e7 8f 87  ...X.V..........
0500: 82 c9 8b 81 82 df 82 c4 82 a2 82 ad 0d 0a 20 20  ..............  
0510: 20 20 20 20 20 20 20 20 69 6e 74 5b 5d 20 6b 32          int[] k2
0520: 20 3d 20 7b 31 2c 32 2c 33 2c 34 2c 30 2c 30 2c   = {1,2,3,4,0,0,
0530: 31 2c 32 7d 3b 0d 0a 20 20 20 20 20 20 20 20 20  1,2};..         
0540: 20 69 6e 74 5b 5d 20 6b 33 20 3d 20 7b 30 2c 30   int[] k3 = {0,0
0550: 2c 30 2c 30 2c 31 2c 32 2c 31 2c 31 7d 3b 0d 0a  ,0,0,1,2,1,1};..
0560: 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 69 6e            for(in
0570: 74 20 69 3d 30 3b 20 69 3c 6b 32 2e 6c 65 6e 67  t i=0; i<k2.leng
0580: 74 68 3b 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20  th; ++i)..      
0590: 20 20 20 20 20 20 20 2f 2f 20 97 e1 82 c6 82 b5         // ......
05a0: 82 c4 20 7b 32 2c 34 2c 38 2c 31 36 2c 33 2c 39  .. {2,4,8,16,3,9
05b0: 7d 20 2d 2d 3e 20 7b 32 2c 34 2c 38 2c 31 36 2c  } --> {2,4,8,16,
05c0: 33 2c 39 2c 36 7d 20 82 cc 8d 58 90 56 82 f0 8d  3,9,6} ...X.V...
05d0: 6c 82 a6 82 e9 0d 0a 20 20 20 20 20 20 20 20 20  l......         
05e0: 20 20 20 20 66 6f 72 28 69 6e 74 20 61 32 3d 6b      for(int a2=k
05f0: 32 5b 69 5d 3b 20 61 32 3c 3d 70 32 3b 20 2b 2b  2[i]; a2<=p2; ++
0600: 61 32 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20  a2)..           
0610: 20 20 66 6f 72 28 69 6e 74 20 61 33 3d 6b 33 5b    for(int a3=k3[
0620: 69 5d 3b 20 61 33 3c 3d 70 33 3b 20 2b 2b 61 33  i]; a3<=p3; ++a3
0630: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ) {..           
0640: 20 20 20 20 20 2f 2f 20 20 20 81 75 32 82 aa 61       //   .u2..a
0650: 8c c2 81 41 33 82 aa 62 8c c2 82 a0 82 e9 82 c6  ...A3..b........
0660: 82 ab 82 cc 20 7b 32 2c 34 2c 38 2c 31 36 2c 33  .... {2,4,8,16,3
0670: 2c 39 2c 36 7d 20 82 cc 8d ec 82 e8 95 fb 83 70  ,9,6} .........p
0680: 83 5e 81 5b 83 93 90 94 81 76 0d 0a 20 20 20 20  .^.[.....v..    
0690: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 3d              // =
06a0: 20 81 75 32 82 aa 61 8c c2 81 41 33 82 aa 62 8c   .u2..a...A3..b.
06b0: c2 82 a0 82 e9 82 c6 82 ab 82 cc 20 7b 32 2c 34  ........... {2,4
06c0: 2c 38 2c 31 36 2c 33 2c 39 7d 20 82 cc 8d ec 82  ,8,16,3,9} .....
06d0: e8 95 fb 83 70 83 5e 81 5b 83 93 90 94 81 76 0d  ....p.^.[.....v.
06e0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
06f0: 20 2f 2f 20 2b 20 81 75 32 82 aa 61 2d 31 8c c2   // + .u2..a-1..
0700: 81 41 33 82 aa 62 2d 31 8c c2 82 a0 82 e9 82 c6  .A3..b-1........
0710: 82 ab 82 cc 20 7b 32 2c 34 2c 38 2c 31 36 2c 33  .... {2,4,8,16,3
0720: 2c 39 2c 36 7d 20 82 cc 8d ec 82 e8 95 fb 83 70  ,9,6} .........p
0730: 83 5e 81 5b 83 93 90 94 81 76 81 76 0d 0a 20 20  .^.[.....v.v..  
0740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 70                dp
0750: 32 33 5b 61 32 2a 50 33 2b 61 33 5d 20 2b 3d 20  23[a2*P3+a3] += 
0760: 64 70 32 33 5b 28 61 32 2d 6b 32 5b 69 5d 29 2a  dp23[(a2-k2[i])*
0770: 50 33 2b 28 61 33 2d 6b 33 5b 69 5d 29 5d 3b 0d  P3+(a3-k3[i])];.
0780: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0790: 20 64 70 32 33 5b 61 32 2a 50 33 2b 61 33 5d 20   dp23[a2*P3+a3] 
07a0: 25 3d 20 4d 4f 44 56 41 4c 3b 0d 0a 20 20 20 20  %= MODVAL;..    
07b0: 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20           }..    
07c0: 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 2f     }....       /
07d0: 2f 20 82 b3 82 e7 82 c9 20 31 34 20 82 f0 8d ec  / ...... 14 ....
07e0: 82 e9 8f ea 8d 87 82 cc 90 94 82 f0 90 94 82 a6  ................
07f0: 82 e9 0d 0a 20 20 20 20 20 20 20 69 6e 74 5b 5d  ....       int[]
0800: 20 64 70 32 33 37 20 3d 20 64 70 32 33 3b 0d 0a   dp237 = dp23;..
0810: 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20         {..      
0820: 20 20 20 20 2f 2f 20 37 82 aa 96 b3 8c c0 82 c9      // 7........
0830: 82 a0 82 e9 82 c6 82 b7 82 e9 82 c6 0d 0a 20 20  ..............  
0840: 20 20 20 20 20 20 20 20 2f 2f 20 20 20 81 75 32          //   .u2
0850: 82 aa 61 8c c2 81 41 33 82 aa 62 8c c2 82 a0 82  ..a...A3..b.....
0860: e9 82 c6 82 ab 82 cc 20 7b 32 2c 34 2c 38 2c 31  ....... {2,4,8,1
0870: 36 2c 33 2c 39 2c 36 2c 31 32 2c 31 34 7d 20 82  6,3,9,6,12,14} .
0880: cc 8d ec 82 e8 95 fb 83 70 83 5e 81 5b 83 93 90  ........p.^.[...
0890: 94 81 76 0d 0a 20 20 20 20 20 20 20 20 20 20 2f  ..v..          /
08a0: 2f 20 3d 20 81 75 32 82 aa 61 8c c2 81 41 33 82  / = .u2..a...A3.
08b0: aa 62 8c c2 82 a0 82 e9 82 c6 82 ab 82 cc 20 7b  .b............ {
08c0: 32 2c 34 2c 38 2c 31 36 2c 33 2c 39 2c 36 2c 31  2,4,8,16,3,9,6,1
08d0: 32 7d 20 82 cc 8d ec 82 e8 95 fb 83 70 83 5e 81  2} .........p.^.
08e0: 5b 83 93 90 94 81 76 0d 0a 20 20 20 20 20 20 20  [.....v..       
08f0: 20 20 20 2f 2f 20 2b 20 81 75 32 82 aa 61 2d 31     // + .u2..a-1
0900: 8c c2 81 41 33 82 aa 62 8c c2 82 a0 82 e9 82 c6  ...A3..b........
0910: 82 ab 82 cc 20 7b 32 2c 34 2c 38 2c 31 36 2c 33  .... {2,4,8,16,3
0920: 2c 39 2c 36 2c 31 32 2c 31 34 7d 20 82 cc 8d ec  ,9,6,12,14} ....
0930: 82 e8 95 fb 83 70 83 5e 81 5b 83 93 90 94 81 76  .....p.^.[.....v
0940: 81 76 0d 0a 20 20 20 20 20 20 20 20 20 20 2f 2f  .v..          //
0950: 20 82 be 82 aa 2e 2e 2e 0d 0a 20 20 20 20 20 20   .........      
0960: 20 20 20 20 66 6f 72 28 69 6e 74 20 61 32 3d 31      for(int a2=1
0970: 3b 20 61 32 3c 3d 70 32 3b 20 2b 2b 61 32 29 0d  ; a2<=p2; ++a2).
0980: 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 69  .          for(i
0990: 6e 74 20 61 33 3d 30 3b 20 61 33 3c 3d 70 33 3b  nt a3=0; a3<=p3;
09a0: 20 2b 2b 61 33 29 20 7b 0d 0a 20 20 20 20 20 20   ++a3) {..      
09b0: 20 20 20 20 20 20 20 64 70 32 33 37 5b 61 32 2a         dp237[a2*
09c0: 50 33 2b 61 33 5d 20 2b 3d 20 64 70 32 33 37 5b  P3+a3] += dp237[
09d0: 28 61 32 2d 31 29 2a 50 33 2b 61 33 5d 3b 0d 0a  (a2-1)*P3+a3];..
09e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 64 70 32               dp2
09f0: 33 37 5b 61 32 2a 50 33 2b 61 33 5d 20 25 3d 20  37[a2*P3+a3] %= 
0a00: 4d 4f 44 56 41 4c 3b 0d 0a 20 20 20 20 20 20 20  MODVAL;..       
0a10: 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20     }....        
0a20: 20 20 2f 2f 20 37 82 cd 70 37 8c c2 82 b5 82 a9    // 7..p7......
0a30: 82 c8 82 a2 82 cc 82 c5 81 41 0d 0a 20 20 20 20  .........A..    
0a40: 20 20 20 20 20 20 2f 2f 20 20 20 81 75 32 82 aa        //   .u2..
0a50: 61 8c c2 81 41 33 82 aa 62 8c c2 81 41 37 82 aa  a...A3..b...A7..
0a60: 96 b3 8c c0 8c c2 82 a0 82 e9 82 c6 82 ab 82 cc  ................
0a70: 20 7b 32 2c 34 2c 38 2c 31 36 2c 33 2c 39 2c 36   {2,4,8,16,3,9,6
0a80: 2c 31 32 2c 31 34 7d 20 82 cc 8d ec 82 e8 95 fb  ,12,14} ........
0a90: 83 70 83 5e 81 5b 83 93 90 94 81 76 0d 0a 20 20  .p.^.[.....v..  
0aa0: 20 20 20 20 20 20 20 20 2f 2f 20 3d 20 81 75 32          // = .u2
0ab0: 82 aa 61 8c c2 81 41 33 82 aa 62 8c c2 81 41 37  ..a...A3..b...A7
0ac0: 82 aa 96 b3 8c c0 8c c2 82 a0 82 e9 82 c6 82 ab  ................
0ad0: 82 cc 20 7b 32 2c 34 2c 38 2c 31 36 2c 33 2c 39  .. {2,4,8,16,3,9
0ae0: 2c 36 2c 31 32 2c 31 34 7d 20 82 cc 8d ec 82 e8  ,6,12,14} ......
0af0: 95 fb 83 70 83 5e 81 5b 83 93 90 94 81 76 0d 0a  ...p.^.[.....v..
0b00: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 2d 20 81            // - .
0b10: 75 32 82 aa 61 2d 70 37 2d 31 8c c2 81 41 33 82  u2..a-p7-1...A3.
0b20: aa 62 8c c2 81 41 37 82 aa 96 b3 8c c0 8c c2 82  .b...A7.........
0b30: a0 82 e9 82 c6 82 ab 82 cc 20 7b 32 2c 34 2c 38  ......... {2,4,8
0b40: 2c 31 36 2c 33 2c 39 2c 36 2c 31 32 2c 31 34 7d  ,16,3,9,6,12,14}
0b50: 20 82 cc 8d ec 82 e8 95 fb 83 70 83 5e 81 5b 83   .........p.^.[.
0b60: 93 90 94 81 76 0d 0a 20 20 20 20 20 20 20 20 20  ....v..         
0b70: 20 2f 2f 20 82 c5 95 e2 90 b3 82 b7 82 e9 0d 0a   // ............
0b80: 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 69 6e            for(in
0b90: 74 20 61 32 3d 70 32 3b 20 61 32 2d 70 37 2d 31  t a2=p2; a2-p7-1
0ba0: 3e 3d 30 3b 20 2d 2d 61 32 29 0d 0a 20 20 20 20  >=0; --a2)..    
0bb0: 20 20 20 20 20 20 66 6f 72 28 69 6e 74 20 61 33        for(int a3
0bc0: 3d 30 3b 20 61 33 3c 3d 70 33 3b 20 2b 2b 61 33  =0; a3<=p3; ++a3
0bd0: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ) {..           
0be0: 20 20 64 70 32 33 37 5b 61 32 2a 50 33 2b 61 33    dp237[a2*P3+a3
0bf0: 5d 20 2b 3d 20 4d 4f 44 56 41 4c 20 2d 20 64 70  ] += MODVAL - dp
0c00: 32 33 37 5b 28 61 32 2d 70 37 2d 31 29 2a 50 33  237[(a2-p7-1)*P3
0c10: 2b 61 33 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20  +a3];..         
0c20: 20 20 20 20 64 70 32 33 37 5b 61 32 2a 50 33 2b      dp237[a2*P3+
0c30: 61 33 5d 20 25 3d 20 4d 4f 44 56 41 4c 3b 0d 0a  a3] %= MODVAL;..
0c40: 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20            }..   
0c50: 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20      }....       
0c60: 2f 2f 20 31 30 82 cc 8c c2 90 94 82 c6 31 35 82  // 10........15.
0c70: cc 8c c2 90 94 82 cd 91 53 92 54 8d f5 0d 0a 20  ........S.T.... 
0c80: 20 20 20 20 20 20 69 6e 74 20 73 75 6d 20 3d 20        int sum = 
0c90: 30 3b 0d 0a 20 20 20 20 20 20 20 66 6f 72 28 69  0;..       for(i
0ca0: 6e 74 20 6e 31 30 3d 30 3b 20 6e 31 30 3c 3d 70  nt n10=0; n10<=p
0cb0: 32 20 26 26 20 6e 31 30 3c 3d 70 35 3b 20 2b 2b  2 && n10<=p5; ++
0cc0: 6e 31 30 29 0d 0a 20 20 20 20 20 20 20 66 6f 72  n10)..       for
0cd0: 28 69 6e 74 20 6e 31 35 3d 30 3b 20 6e 31 35 3c  (int n15=0; n15<
0ce0: 3d 70 33 20 26 26 20 6e 31 30 2b 6e 31 35 3c 3d  =p3 && n10+n15<=
0cf0: 70 35 3b 20 2b 2b 6e 31 35 29 20 7b 0d 0a 20 20  p5; ++n15) {..  
0d00: 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 64          sum += d
0d10: 70 32 33 37 5b 28 70 32 2d 6e 31 30 29 2a 50 33  p237[(p2-n10)*P3
0d20: 2b 28 70 33 2d 6e 31 35 29 5d 3b 0d 0a 20 20 20  +(p3-n15)];..   
0d30: 20 20 20 20 20 20 20 73 75 6d 20 25 3d 20 4d 4f         sum %= MO
0d40: 44 56 41 4c 3b 0d 0a 20 20 20 20 20 20 20 7d 0d  DVAL;..       }.
0d50: 0a 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73  .       return s
0d60: 75 6d 3b 0d 0a 20 20 20 7d 0d 0a 0d 0a 20 20 20  um;..   }....   
0d70: 73 74 61 74 69 63 20 66 69 6e 61 6c 20 69 6e 74  static final int
0d80: 20 4d 4f 44 56 41 4c 20 3d 20 31 30 30 30 30 30   MODVAL = 100000
0d90: 30 30 30 39 3b 0d 0a 7d 0d 0a                    0009;..}..