2018年1月20日土曜日

180120(2)

Ruby


1~9を左または右に付け加える操作で得られる数字がずっと素数

以下のコードで求めてみた。

require 'prime'

def A(n)
  ary = [2, 3, 5, 7]
  p [ary.size, ary]
  (n - 1).times{|i|
    ary1 = []
    ary.each{|a|
      (1..9).each{|d|
        j = d * 10 ** (i + 1) + a
        ary1 << j if j.prime?
        j = a * 10 + d
        ary1 << j if j.prime?
      }
    }
    ary = ary1.uniq
    p [ary.size, ary]
  }
end

A(5)

出力結果
[4, [2, 3, 5, 7]]
[16, [23, 29, 13, 31, 43, 53, 73, 37, 83, 59, 17, 71, 47, 67, 97, 79]]
[70, [223, 233, 523, 823, 239, 229, 293, 829, 929, 113, 131, 313, 613, 137, 139, 311, 331, 431, 631, 317, 433, 443, 643, 743, 439, 353, 653, 853, 953, 173, 373, 733, 673, 773, 739, 337, 937, 379, 283, 383, 683, 883, 983, 839, 359, 593, 659, 859, 599, 617, 179, 271, 571, 971, 719, 347, 547, 647, 947, 479, 167, 367, 467, 677, 967, 197, 397, 797, 977, 997]]
[243, [1223, 2237, 2239, 2333, 5233, 8233, 2339, 1523, 5231, 4523, 7523, 5237, 1823, 8231, 3823, 6823, 7823, 8237, 2393, 9239, 2399, 1229, 3229, 2293, 4229, 6229, 7229, 2297, 8293, 9293, 2939, 8291, 6829, 7829, 8297, 9829, 3929, 8929, 9929, 2113, 5113, 6113, 2131, 6131, 1319, 3313, 3137, 1613, 3613, 6133, 9613, 2137, 1373, 9137, 4139, 1399, 2311, 6311, 8311, 9311, 3119, 3331, 7331, 3319, 5431, 8431, 9431, 3631, 6317, 9631, 8317, 1433, 3433, 7433, 4337, 9433, 4339, 5443, 8443, 3643, 4643, 7643, 9643, 5743, 9743, 1439, 4391, 4397, 9439, 3533, 6353, 8353, 3539, 5653, 6653, 3853, 7853, 8537, 8539, 2953, 9533, 5953, 9539, 1733, 6173, 9173, 3373, 3733, 4373, 6373, 3739, 7333, 4733, 6733, 9733, 3673, 4673, 6673, 7673, 6737, 7393, 9739, 3371, 6337, 9337, 9371, 4937, 7937, 9377, 3793, 6379, 3797, 1283, 2833, 4283, 7283, 2837, 9283, 2383, 3833, 2683, 6833, 5683, 8831, 6883, 7883, 8837, 9883, 8839, 9833, 6983, 9839, 5839, 3359, 3593, 6359, 2593, 5939, 2659, 3659, 5659, 6659, 6599, 8597, 9859, 8599, 2617, 3617, 2179, 5179, 8179, 2711, 3271, 2713, 4271, 6271, 2719, 1571, 5711, 3571, 6571, 5717, 2971, 6971, 8971, 9719, 3719, 7193, 6719, 8719, 2347, 3347, 5347, 5471, 3547, 4547, 6547, 7547, 5477, 9547, 5479, 2647, 6473, 5647, 8647, 3947, 9473, 6947, 9479, 4793, 4799, 3167, 5167, 8167, 1367, 3671, 6367, 3677, 2467, 3467, 8467, 9467, 4679, 2677, 8677, 9677, 6779, 3967, 4967, 6967, 9967, 9679, 1973, 5197, 6197, 1979, 6397, 9397, 2797, 6977, 1997, 9973, 6997]]
[638, [31223, 61223, 81223, 12239, 32237, 52237, 82237, 92237, 22391, 42239, 22397, 23333, 92333, 23339, 15233, 45233, 95233, 18233, 78233, 82339, 23399, 21523, 52313, 95231, 84523, 67523, 87523, 97523, 75239, 25237, 85237, 52379, 91823, 38231, 58231, 63823, 73823, 38237, 38239, 16823, 96823, 68239, 27823, 82373, 58237, 88237, 82393, 39239, 59239, 69239, 92399, 23993, 51229, 91229, 13229, 32297, 93229, 32299, 42293, 22937, 24229, 84229, 94229, 42299, 16229, 36229, 46229, 62297, 62299, 22973, 92297, 82939, 39293, 89293, 32939, 62939, 29399, 82913, 16829, 46829, 76829, 57829, 67829, 97829, 28297, 98297, 39829, 69829, 79829, 99829, 98299, 23929, 63929, 78929, 98929, 39929, 59929, 69929, 99929, 12113, 21139, 51131, 51133, 51137, 26113, 56113, 86113, 21313, 42131, 62131, 21317, 21319, 36131, 56131, 86131, 31319, 13313, 43313, 63313, 83137, 31379, 21613, 51613, 61613, 16139, 13613, 33613, 43613, 73613, 36137, 61331, 61333, 46133, 61339, 49613, 79613, 96137, 62137, 21377, 21379, 81373, 91373, 29137, 89137, 99137, 54139, 41399, 11399, 71399, 13997, 13999, 62311, 23117, 92311, 63113, 56311, 86311, 18311, 48311, 68311, 78311, 83117, 29311, 93113, 33119, 31193, 13331, 33311, 33331, 43331, 63331, 73331, 33317, 57331, 33191, 43319, 93319, 33199, 54311, 75431, 54319, 38431, 84313, 84317, 84319, 69431, 89431, 99431, 36313, 36319, 26317, 63179, 39631, 79631, 38317, 78317, 83177, 98317, 21433, 91433, 73433, 34337, 67433, 87433, 24337, 19433, 94331, 49433, 79433, 43391, 43397, 43399, 15443, 54437, 95443, 18443, 84431, 68443, 84437, 98443, 36433, 73643, 46439, 37643, 87643, 96431, 99643, 75743, 59743, 51439, 81439, 24391, 43913, 84391, 43973, 94397, 39439, 69439, 99439, 94399, 33533, 63533, 35339, 36353, 86353, 96353, 18353, 48353, 83537, 23539, 35393, 56531, 56533, 75653, 36653, 66533, 66653, 43853, 63853, 37853, 57853, 67853, 87853, 78539, 28537, 58537, 18539, 48539, 68539, 12953, 29531, 42953, 72953, 29537, 89533, 95339, 45953, 59539, 95393, 69539, 17333, 91733, 66173, 29173, 99173, 33739, 37337, 37339, 24373, 64373, 36373, 66373, 63737, 37397, 93739, 24733, 47339, 66733, 76733, 67339, 39733, 99733, 73673, 36739, 34673, 54673, 84673, 16673, 76673, 66739, 27673, 97673, 26737, 56737, 96737, 17393, 73939, 19739, 49739, 69739, 97397, 23371, 33713, 93371, 46337, 66337, 63377, 96337, 69337, 79337, 93377, 39371, 69371, 89371, 99371, 93719, 64937, 79379, 59377, 99377, 43793, 63793, 76379, 63799, 33797, 21283, 51283, 61283, 81283, 91283, 32833, 34283, 64283, 42839, 27283, 57283, 97283, 52837, 82837, 92831, 79283, 23831, 23833, 62383, 72383, 92383, 38333, 83833, 26833, 42683, 62683, 92683, 26839, 36833, 15683, 75683, 58831, 16883, 66883, 76883, 27883, 67883, 97883, 78839, 28837, 98837, 88379, 39883, 18839, 38839, 88397, 29833, 59833, 69833, 89833, 99833, 56983, 39839, 89839, 99839, 58391, 35839, 58393, 65839, 33359, 53359, 33599, 23593, 35933, 53593, 56359, 66359, 63599, 25931, 25933, 92593, 25939, 59393, 59399, 12659, 26591, 62659, 26597, 63659, 36599, 56591, 45659, 75659, 56597, 56599, 66593, 56659, 65993, 86599, 28597, 68597, 98597, 69859, 99859, 85991, 85999, 26171, 62617, 72617, 26177, 33617, 53617, 63617, 83617, 42179, 92179, 21799, 45179, 65179, 51797, 48179, 78179, 98179, 81799, 52711, 32713, 43271, 32717, 32719, 12713, 64271, 42719, 46271, 66271, 27191, 72719, 27197, 91571, 55711, 85711, 57119, 73571, 36571, 65713, 66571, 65717, 65719, 25717, 57173, 55717, 85717, 95717, 57179, 32971, 62971, 29717, 38971, 39719, 99719, 23719, 53719, 63719, 83719, 37199, 71933, 57193, 86719, 18719, 12347, 23473, 62347, 92347, 33347, 63347, 33479, 75347, 53479, 25471, 54713, 95471, 33547, 73547, 24547, 54547, 94547, 16547, 65479, 37547, 67547, 87547, 97547, 75479, 54773, 54779, 49547, 95479, 54799, 12647, 32647, 72647, 92647, 26479, 36473, 56473, 15647, 65647, 56477, 56479, 48647, 86477, 29473, 59473, 69473, 26947, 36947, 66947, 94793, 24793, 47933, 64793, 84793, 47939, 24799, 23167, 51673, 65167, 75167, 51679, 81671, 38167, 78167, 81677, 91367, 13679, 23671, 36713, 63671, 76367, 23677, 36779, 24671, 32467, 42467, 62467, 72467, 24677, 92467, 63467, 34679, 78467, 98467, 59467, 69467, 54679, 64679, 42677, 26777, 86771, 38677, 48677, 69677, 96779, 56779, 13967, 39671, 33967, 93967, 39679, 24967, 84967, 79967, 99679, 96797, 96799, 31973, 51973, 81973, 51971, 45197, 51977, 56197, 86197, 61979, 19793, 63977, 93971, 39397, 79397, 99397, 93979, 32797, 42797, 72797, 66977, 69779, 21997, 19973, 91997, 19979, 79973, 36997, 46997, 96997]]

180120

Ruby


1~9を左右交互に付け加える操作で得られる数字がずっと素数

以下のコードで求めてみた。

require 'prime'

def A(k, n)
  ary = [2, 3, 5, 7]
  p [ary.size, ary]
  (n - 1).times{|i|
    ary1 = []
    ary.each{|a|
      if i % 2 == k
        (1..9).each{|d|
          j = (d.to_s + a.to_s).to_i
          ary1 << j if j.prime?
        }
      else
        # 1の桁が0の素数はない
        (1..9).each{|d|
          j = (a.to_s + d.to_s).to_i
          ary1 << j if j.prime?
        }
      end
    }
    ary = ary1.uniq
    p [ary.size, ary]
  }
end

# 最初左から加える
A(0, 16)
p ''
# 最初右から加える
A(1, 14)

出力結果
[4, [2, 3, 5, 7]]
[11, [13, 23, 43, 53, 73, 83, 17, 37, 47, 67, 97]]
[20, [131, 137, 139, 233, 239, 431, 433, 439, 733, 739, 839, 173, 179, 373, 379, 479, 673, 677, 971, 977]]
[53, [2131, 6131, 2137, 3137, 9137, 4139, 5233, 8233, 2239, 9239, 5431, 8431, 9431, 1433, 3433, 7433, 9433, 1439, 9439, 1733, 3733, 4733, 6733, 9733, 3739, 9739, 5839, 8839, 9839, 6173, 9173, 2179, 5179, 8179, 1373, 3373, 4373, 6373, 6379, 5479, 9479, 3673, 4673, 6673, 7673, 2677, 3677, 8677, 9677, 2971, 6971, 8971, 6977]]
[51, [21313, 21317, 21319, 21377, 21379, 31379, 91373, 41399, 82339, 22391, 22397, 92399, 54311, 54319, 84313, 84317, 84319, 34337, 94331, 94397, 94399, 17333, 37337, 37339, 47339, 67339, 37397, 97397, 58391, 58393, 88397, 91733, 21799, 51797, 81799, 33739, 63737, 63793, 63799, 54799, 94793, 36739, 66733, 66739, 76733, 26777, 36779, 86771, 96779, 29717, 69779]]
[100, [121313, 321313, 421313, 221317, 521317, 621317, 321319, 721319, 521377, 821377, 121379, 721379, 921379, 231379, 291373, 391373, 182339, 782339, 982339, 522391, 822391, 922391, 322397, 622397, 692399, 954319, 784313, 384317, 294397, 594397, 794399, 217333, 317333, 617333, 917333, 637337, 937337, 137339, 337339, 637339, 737339, 247339, 847339, 167339, 767339, 337397, 297397, 697397, 658391, 158393, 758393, 958393, 588397, 688397, 888397, 391733, 991733, 321799, 621799, 351797, 851797, 781799, 633739, 933739, 263737, 663737, 963793, 363799, 963799, 154799, 354799, 454799, 654799, 294793, 594793, 894793, 994793, 136739, 436739, 636739, 936739, 366733, 466733, 666733, 166739, 766739, 676733, 226777, 526777, 926777, 236779, 536779, 936779, 286771, 596779, 229717, 329717, 929717, 269779, 869779]]
[63, [1213133, 3213131, 3213137, 3213139, 4213133, 2213171, 5213171, 5213179, 6213173, 5213773, 5213777, 9213791, 9213797, 2313797, 2313799, 2913733, 2913739, 9223919, 3843179, 2943971, 2173333, 2173337, 6373391, 6373397, 6373399, 2473391, 8473391, 1673393, 6973973, 6583919, 5883971, 5883973, 5883979, 8883971, 8883977, 3217997, 6217993, 6217999, 2637373, 2637379, 6637373, 9637937, 1547993, 3547991, 3547993, 2947939, 1367393, 4367393, 6367391, 6367393, 3667333, 6667337, 6767333, 2267773, 5267771, 9267773, 2367793, 2367797, 9367793, 2867719, 2697797, 8697791, 8697797]]
[76, [23213131, 33213137, 93213137, 13213139, 93213139, 65213171, 95213171, 65213179, 75213179, 15213773, 75213773, 95213773, 35213777, 65213777, 89213791, 99213791, 69213797, 52313797, 92313797, 12313799, 62313799, 42913733, 62913733, 72913733, 12913739, 32913739, 72913739, 92913739, 89223919, 63843179, 52943971, 62943971, 42173333, 76373399, 96373399, 28473391, 31673393, 36973973, 45883979, 98883971, 58883977, 98883977, 76217993, 42637373, 62637373, 92637373, 42637379, 59637937, 69637937, 89637937, 31547993, 91547993, 33547991, 83547991, 12947939, 62947939, 21367393, 31367393, 24367393, 34367393, 66367391, 43667333, 93667333, 86667337, 32267773, 42267773, 62267773, 85267771, 29267773, 59267773, 12367793, 32367793, 62367793, 52367797, 12867719, 28697797]]
[42, [932131391, 652131791, 652131793, 652131797, 692137973, 523137971, 923137973, 123137999, 429137333, 429137339, 629137337, 892239197, 529439717, 963733997, 284733913, 369739739, 458839793, 588839777, 988839779, 426373733, 626373731, 926373731, 926373733, 926373739, 426373799, 696379373, 896379371, 896379373, 896379377, 629479391, 629479393, 213673931, 213673937, 936673337, 866673377, 322677737, 622677733, 852677717, 292677731, 292677739, 323677933, 623677939]]
[43, [5652131791, 7652131793, 9652131793, 5692137973, 3523137971, 3923137973, 3429137333, 5429137339, 6629137337, 9629137337, 2892239197, 8892239197, 9892239197, 6529439717, 8529439717, 7284733913, 2988839779, 8426373733, 3626373731, 6626373731, 9926373731, 9926373733, 1926373739, 3926373739, 6926373739, 9926373739, 6426373799, 4896379373, 7896379373, 8896379377, 9896379377, 3629479391, 3629479393, 5213673931, 2213673937, 2866673377, 6866673377, 2322677737, 9852677717, 9292677731, 1323677933, 4323677933, 6623677939]]
[20, [56521317911, 96521317933, 35231379713, 35231379719, 54291373393, 66291373373, 96291373379, 99263737319, 39263737393, 39263737397, 99263737399, 64263737999, 48963793733, 98963793779, 36294793919, 36294793939, 52136739311, 28666733779, 98526777179, 92926777319]]
[13, [996521317933, 635231379719, 299263737319, 399263737319, 899263737319, 939263737397, 264263737999, 664263737999, 548963793733, 328666733779, 998526777179, 892926777319, 992926777319]]
[4, [6642637379993, 9985267771799, 8929267773197, 9929267773199]]
[4, [36642637379993, 29985267771799, 58929267773197, 88929267773197]]
[1, [889292677731979]]
[0, []]
""
[4, [2, 3, 5, 7]]
[9, [23, 29, 31, 37, 53, 59, 71, 73, 79]]
[30, [223, 523, 823, 229, 829, 929, 131, 331, 431, 631, 137, 337, 937, 353, 653, 853, 953, 359, 659, 859, 271, 571, 971, 173, 373, 673, 773, 179, 379, 479]]
[49, [2237, 2239, 5231, 5233, 5237, 8231, 8233, 8237, 2293, 2297, 8291, 8293, 8297, 9293, 1319, 3313, 3319, 6311, 6317, 1373, 3371, 3373, 9371, 9377, 3533, 3539, 8537, 8539, 9533, 9539, 3593, 6599, 8597, 8599, 2711, 2713, 2719, 5711, 5717, 9719, 1733, 3733, 3739, 6733, 6737, 3793, 3797, 4793, 4799]]
[99, [32237, 52237, 82237, 92237, 12239, 42239, 95231, 15233, 45233, 95233, 25237, 85237, 38231, 58231, 18233, 78233, 38237, 58237, 88237, 42293, 32297, 62297, 92297, 28297, 98297, 39293, 89293, 21319, 31319, 13313, 43313, 63313, 43319, 93319, 56311, 86311, 26317, 81373, 91373, 23371, 93371, 39371, 69371, 89371, 99371, 59377, 99377, 33533, 63533, 23539, 28537, 58537, 18539, 48539, 68539, 78539, 89533, 59539, 69539, 23593, 53593, 36599, 56599, 86599, 28597, 68597, 98597, 52711, 12713, 32713, 32719, 42719, 72719, 55711, 85711, 25717, 55717, 65717, 85717, 95717, 39719, 99719, 91733, 33739, 93739, 66733, 76733, 26737, 56737, 96737, 43793, 63793, 33797, 24793, 64793, 84793, 94793, 24799, 54799]]
[74, [522371, 522373, 822379, 122393, 122399, 422393, 952313, 582317, 582319, 182333, 182339, 782339, 382373, 582371, 882377, 922973, 282973, 282977, 982973, 892933, 213193, 633133, 433193, 933199, 563113, 563117, 563119, 863119, 263171, 913739, 233713, 393713, 893719, 593777, 993779, 635333, 635339, 235397, 285377, 685393, 895333, 535937, 535939, 565997, 865993, 285977, 285979, 685973, 985973, 985979, 127133, 127139, 327133, 327193, 257171, 257177, 917333, 337397, 667333, 767339, 267373, 567377, 637933, 637937, 637939, 337973, 247939, 847933, 847937, 247991, 247993, 247997, 247999, 547999]]
[101, [2522371, 6522371, 7822379, 5122393, 5422393, 6952313, 1582319, 9582319, 2182333, 8182333, 5182339, 6782339, 3382373, 2882377, 5882377, 6882377, 2922973, 3922973, 4282973, 3282977, 5982973, 8982973, 1633133, 8433193, 1933199, 3933199, 9933199, 4563113, 2563117, 8563117, 9563117, 1563119, 6863119, 2263171, 6263171, 2913739, 8913739, 3393713, 1893719, 3893719, 2593777, 6593777, 8593777, 9593777, 3993779, 3285377, 8285377, 4685393, 7895333, 2535937, 1535939, 5565997, 3865993, 9865993, 2285977, 6285977, 9285977, 3285979, 3685973, 2985973, 6985973, 9985973, 2985979, 2127133, 3127139, 5127139, 1327133, 3327193, 9327193, 3257171, 5257171, 6257171, 8257177, 2917333, 2337397, 3667333, 7667333, 5767339, 9767339, 2567377, 6637933, 2637937, 3637937, 9637937, 3637939, 4637939, 3337973, 5337973, 9337973, 9247939, 1847933, 4847933, 2847937, 6847937, 2247991, 8247991, 9247993, 5247997, 8247997, 6247999, 9247999]]
[71, [25223711, 25223713, 78223799, 69523133, 95823193, 21823339, 81823333, 81823337, 33823739, 58823773, 58823777, 29229737, 39229733, 59829733, 25631173, 85631177, 85631179, 15631199, 22631711, 33937133, 33937139, 18937199, 25937773, 85937773, 78953333, 25359371, 55659971, 55659979, 38659939, 22859773, 22859779, 62859773, 92859773, 92859779, 32859791, 69859733, 69859739, 29859793, 29859799, 21271331, 21271339, 31271399, 51271397, 51271399, 33271937, 33271939, 93271939, 32571713, 52571711, 52571719, 29173337, 23373979, 36673331, 36673333, 57673391, 97673399, 66379337, 26379373, 26379377, 96379373, 36379397, 46379393, 93379733, 22479911, 22479913, 22479917, 82479911, 92479931, 92479939, 82479979, 92479997]]
[72, [325223713, 425223713, 625223713, 925223713, 869523133, 195823193, 395823193, 321823339, 181823333, 381823333, 233823739, 333823739, 533823739, 458823773, 558823777, 958823777, 239229733, 925631173, 985631177, 185631179, 685631179, 815631199, 533937133, 933937133, 333937139, 425937773, 978953333, 655659971, 155659979, 722859773, 722859779, 992859773, 992859779, 232859791, 632859791, 669859733, 969859739, 129859799, 329859799, 429859799, 221271331, 921271331, 921271339, 451271399, 733271939, 793271939, 632571713, 932571713, 452571719, 229173337, 929173337, 623373979, 723373979, 536673331, 136673333, 636673333, 857673391, 397673399, 726379373, 826379377, 696379373, 896379373, 846379393, 293379733, 593379733, 122479913, 922479913, 392479931, 692479939, 482479979, 592479997, 992479997]]
[35, [3252237133, 8695231331, 3818233333, 2338237399, 5338237391, 4588237733, 5588237771, 2392297337, 8156311993, 6556599713, 9928597793, 2328597919, 6698597333, 2212713317, 9212713313, 9212713399, 4512713993, 4525717193, 2291733377, 9291733379, 5366733311, 1366733339, 6366733337, 8576733917, 7263793739, 8263793771, 8263793773, 8963793737, 8963793739, 2933797331, 5933797333, 9224799137, 9224799139, 3924799313, 5924799971]]
[28, [73252237133, 13818233333, 63818233333, 42338237399, 64588237733, 98156311993, 89928597793, 22212713317, 32212713317, 39212713313, 89212713313, 49212713399, 69212713399, 99212713399, 94512713993, 92291733377, 29291733379, 59291733379, 89291733379, 99291733379, 31366733339, 68263793771, 88263793771, 38263793773, 22933797331, 65933797333, 35924799971, 65924799971]]
[9, [732522371333, 638182333331, 981563119937, 981563119939, 899285977939, 313667333393, 682637937713, 229337973317, 659337973331]]
[4, [6638182333331, 5981563119937, 8313667333393, 2682637937713]]
[0, []]

2018年1月6日土曜日

180107

Ruby


Hurwitz sums

H() をHurwitz class number とし、
Hurwitz sums s_j(n) を次のように定義する。
s_j(n) = (1/2) * Sum_{|k|<=2*sqrt(n)} k^j*H(4*n-k^2).

素数p に対し、
s_2(p) = p^2 - 1
s_4(p) = 2*p^3 - 3*p - 1
s_6(p) = 5*p^4 - 9*p^2 - 5*p - 1
s_8(p) = 14*p^5 - 28*p^3 - 20*p^2 - 7*p - 1
s_10(p) = 42*p^6 - 90*p^4 - 75*p^3 - 35*p^2 - 9*p - 1 - τ(p)
となる。

以下のコードでs_j(p) を求めてみた。

require 'prime'

def A259825(n)
  return -1 if n == 0
  return 0 if n % 4 == 1 || n % 4 == 2
  s = 0
  (1..Math.sqrt(n / 3).to_i).each{|a|
    (0..a).each{|b|
      c4 = n + b * b
      if c4 % (4 * a) == 0
        c = c4 / (4 * a)
        if a == c
          if a == b
            s += 4
          elsif b == 0
            s += 6
          else
            s += 12
          end
        elsif a < c
          if a == b
            s += 12
          elsif b == 0
            s += 12
          else
            s += 24
          end
        end
      end
    }
  }
  s
end

def A(k, n)
  m = 4 * n
  (1..(2 * Math.sqrt(n)).to_i).inject(0 ** k * A259825(m) / 2){|s, i| s + i ** k * A259825(m - i * i)} / 12
end

def B(k, n)
  p_ary = [0] + Prime.take(n).to_a
  m = p_ary[-1]
  (1..n).map{|i| A(k, p_ary[i])}
end

n = 30
(1..10).each{|i| p [2 * i, B(2 * i, n)]}

出力結果
[2, [3, 8, 24, 48, 120, 168, 288, 360, 528, 840, 960, 1368, 1680, 1848, 2208, 2808, 3480, 3720, 4488, 5040, 5328, 6240, 6888, 7920, 9408, 10200, 10608, 11448, 11880, 12768]]
[4, [9, 44, 234, 664, 2628, 4354, 9774, 13660, 24264, 48690, 59488, 101194, 137718, 158884, 207504, 297594, 410580, 453778, 601324, 715608, 777814, 985840, 1143324, 1409670, 1825054, 2060298, 2185144, 2449764, 2589730, 2885454]]
[6, [33, 308, 2874, 11528, 72060, 141218, 414918, 648260, 1394328, 3528690, 4608800, 9358298, 14113470, 17077148, 24378288, 39426858, 60555180, 69195410, 100714868, 127012680, 141942878, 194693840, 237229188, 313639470, 442561238, 520209690, 562658408, 655294428, 705683330, 815121318]]
[8, [129, 2444, 39714, 224664, 2214948, 5133114, 19734534, 34465980, 89757384, 286456170, 399954528, 969369474, 1620023118, 2055854724, 3207878544, 5850511794, 10003119540, 11817917898, 18893239884, 25249088088, 29012002734, 43064859120, 55130420604, 78156934110, 120197019894, 147112353858, 162267561144, 196322711364, 215370854490, 257900267814]]
[10, [513, 20708, 584874, 4714408, 72449100, 200562418, 1012788198, 1953009460, 6172747128, 24788658690, 37242612640, 107770200778, 198936710910, 265200653548, 449592659568, 931777815258, 1775665528380, 2155635964450, 3812897562148, 5368106367720, 6351988507678, 10168013581840, 13756516406388, 20892507185070, 34901774222518, 44492660299530, 50365739676808, 62928544075308, 70351920200530, 87512337544518]]
[12, [2049, 181244, 8926194, 104289464, 2455548468, 8246944874, 55010676294, 114990517100, 442729758504, 2229731842650, 3640923116768, 12584050175954, 25533404751918, 35843543103764, 65415419240784, 155865973907394, 331654092615300, 409919569308218, 811017463040444, 1192365811189368, 1456457608112654, 2500867773988400, 3607558642090284, 5861328443293950, 10582759146802934, 14058219944572818, 16486641420019544, 21085899713623764, 24037401934167050, 31154712798771174]]
[14, [8193, 1610708, 139025274, 2397234888, 85014149340, 352434550818, 3118993613478, 6938373378660, 32671756845528, 205710978523890, 368811257026080, 1524456076671258, 3379136118265950, 5010691521137148, 9750330789350448, 27025215503630058, 64328351349802380, 80191929818719890, 179491298171857428, 272972530537668360, 345299330092071678, 632301339896450640, 981744755261722788, 1702821476030760270, 3306456962987468598, 4580992525579668570, 5616913396235188008, 7292462401620784188, 8477906438647107330, 11488394671953270918]]
[16, [32769, 14414444, 2190628674, 56632431064, 2982373957188, 15523539588634, 182595055842054, 425575161749020, 2460657409503624, 19319465963741130, 38379163197882208, 190131995077929634, 457067675818655118, 718758894907332004, 1478268080488126224, 4813672930807565394, 12839561340243691860, 16013694032851837738, 40956795669825225004, 63860230452623159448, 83983920045368334574, 163079769425865389680, 274991071525205126364, 507623976056948588190, 1055898568400194189174, 1527940695571469390178, 1972887914497934180344, 2583638229756401828964, 3061014981519328100410, 4352785707799601034534]]
[18, [131073, 129402308, 34747552074, 1363579668968, 105512868252780, 700402917646418, 10944246022054758, 26401440717171860, 188162176478505528, 1838463643307416290, 4079472563512361120, 24285674673824261738, 62805883107401926590, 105251575420179047948, 227072526377985554928, 875176009945289931258, 2619641245598830857180, 3248660831029550473730, 9569547485884912616708, 15180372290302972194600, 20846596598034565158878, 42703157341971684548240, 78838646640507192722388, 154263056908360102265070, 342866246691075769111478, 519264690557328671856810, 709369479551958868248008, 933181971707580839797068, 1125083663769729589303730, 1685327444498021593048518]]
[20, [524289, 1163310044, 553244171154, 33258648265464, 3753731870625108, 32211568604168394, 667319070840143814, 1651125814485793740, 14558025144269088744, 176723096638372439610, 441213136033246906848, 3164236870853999654514, 8729810745923145428718, 15678646585819633755444, 35256405678540521286864, 161651097592314837901794, 543668635398377615933220, 667464089890997383474458, 2277452598979433262705564, 3652575969841555585478328, 5261409545724369638380494, 11317609829610130954038960, 23040071747491081578152844, 47559066180825074348320830, 112814596434290294415898614, 179290894969193853332773938, 259721651007382022243003544, 342452608486367995349918964, 419309202665617028732382570, 664236173072310322158561894]]

2018年1月1日月曜日

180101

PARI


τ(p) mod p

以下の計算もPARI なら数分で終わります。

(20:54) gp > (ramanujantau(691)-1)%691
%1 = 0
(20:54) gp > ramanujantau(7758337633)%7758337633
%2 = 0
(20:55) gp > (ramanujantau(692881373)+1)%692881373
%3 = 0
(20:56) gp >

ちなみにτ(p) の値は次のようになります。

(21:02) gp > ramanujantau(691)
%1 = -2747313442193908
(21:02) gp > ramanujantau(7758337633)
%2 = 3634118031125820057253378550628821747860472052772622882
(21:04) gp > ramanujantau(692881373)
%3 = -2134035447986554588547794684277099135915023500378
(21:04) gp >