ご祝儀談義

まあ私みたいな人間でも時折結婚式によんで下さる方がいらっしゃって,まあ,そういう人に限って(もないだろうけど)オーソドックスな結婚式をしてくれる.
で,オーソドックスな結婚式に付き物といえばご祝儀.割り切れちゃいけないから偶数は良くないといいつつ,思いっきり偶数の数字を送り付けるのが気持ち悪くてしょうがなかった.
前回の結婚式では素数である30011円を送ったわけだけど,コイン二つというのは音がしてなんか気分が落ち着かない.今回は面倒くさかったので,30000円のご祝儀を袋に詰めて向かったが,お財布を忘れるというあり得ないミスを犯した結果,ご祝儀を崩して帰るための資金を作るはめに.で,その時にご祝儀を20000円にするというのも芸が無いので,適当に素数を送り付けようと計算したら,21001円が見事にコイン一つで素数だったので,その金額を送ることに.

じゃあ,そんな感じでご祝儀に素数を送る時に,ちゃらちゃら音がしない組み合わせってのはどれくらいあるんだろうと計算すると,ご祝儀として現実的な10万円以下では,
必要コイン数1枚 24通り

5, 3001, 4001, 7001, 9001, 13001, 16001, 19001, 21001, 24001, 28001, 51001, 54001, 55001, 61001, 69001, 70001, 76001, 81001, 88001, 90001, 93001, 96001, 97001

必要コイン数2枚 105通り

2, 11, 101, 1051, 2011, 3011, 4051, 5011, 5051, 5101, 5501, 6011, 6101, 8011, 8101, 8501, 9011, 10501, 12011, 12101, 14011, 14051, 15101, 17011, 19051, 19501, 20011, 20051, 20101, 21011, 21101, 22051, 22501, 23011, 26501, 27011, 28051, 29101, 29501, 30011, 31051, 32051, 34501, 35051, 36011, 37501, 38011, 38501, 41011, 41051, 42101, 43051, 44101, 44501, 46051, 47051, 47501, 50051, 50101, 52051, 52501, 53051, 53101, 54011, 54101, 55051, 55501, 56101, 56501, 59011, 59051, 60101, 61051, 62011, 62501, 65011, 65101, 68501, 69011, 70051, 70501, 71011, 72101, 74051, 74101, 75011, 77101, 78101, 80051, 81101, 82051, 83101, 84011, 86011, 86501, 87011, 89051, 89101, 89501, 90011, 92051, 95101, 97501, 98011, 98101

となる.意外と,選択肢は広い.ただ,必要コイン数1枚だとご祝儀として一番一般的だと思う3-4万円の領域がすっぽりないのがトラップ.

しかし,今日行った結婚式,新郎がそういう人間なのでBGMの8割がたがアニメソング(といっても知らない人は気がつかないのを周到に選んである)で,よくやると思った.ただ,ひとつだけ,結婚式にガーネットは縁起悪すぎないかねとちょっと思ったり.
あと,全然関係ないけど,RubyのmathnパッケージのPrimeって猛烈に遅い.もうちょっと何とかならないんだろうか.だって,平方根までの数で普通に割ってく方法で,素数を列挙するプログラムを,Cで昔作ったことあるけど,int全部走査するのに1秒かからなかったような.