質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1768閲覧

素数の日付は何日あるか?

manman

総合スコア233

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2014/12/06 04:16

以下の対応を考えることにします。

本日 2014年12月6日→20141206
明日 2014年12月7日→20141207

来年の元旦 2015年1月1日→20150101

明日は20141207が素数なので、素数の日付と呼ぶことにします。
同様に、2000年1月1日から2099年12月31日までに
素数の日付は何日あるでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

lang

1# coding: utf-8 2require 'date' 3require 'prime' 4 5d0 = Date.new(2000, 1, 1) 6d1 = Date.new(2099, 12, 31) 7ans = (d0..d1).lazy.select {|d| 8 Prime.prime? d.strftime('%Y%m%d').to_i 9}.force 10 11# puts ans.each {|x| puts x} 12puts ans.size 13 14puts "2014-12-06: #{ans.include?(Date.new(2014, 12, 6))}" 15puts "2014-12-07: #{ans.include?(Date.new(2014, 12, 7))}"

実行すると

2192 2014-12-06: false 2014-12-07: true

投稿2014/12/06 05:22

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manman

2014/12/06 07:25

余談ですが、katoyさんのコードに下のコードを追加し実行することにより、 来年 2015年は、2000年から2099年までの間で最も素数の日付が少ない年である ことがわかります。 y_ary = [] for i in (2000..2099) y_ary << ans.select{|d| d.strftime('%Y').to_i == i}.size end p y_ary p y_ary.min p y_ary.index(y_ary.min)
manman

2014/12/06 07:35

2000年から2099年までの間で最も素数の日付が少ない年は  2015年と2046年 です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問