クフでダローバルな日記

タフでもグローバルもない

今日のそすうのそうす

見ればわかると思いますが、その日の年月日時分秒をそのまま並べた時に素数になる組み合わせを求めるアレです。

#素数になるか判定するメソッド
def is_prime(n)
	if n%2 == 0	#奇数だけで行きたいため2は別個
		return false
	end
	max = Math.sqrt(n).to_i
	m = 3
	while m <= max
		if n%m == 0
			return false
		else
			m += 2
		end
	end
	return true
end

=begin このへんはテスト
for n in 3..100
	if is_prime(n)
		puts n.to_i
	end
end
=end

#以下、今日が素数になるか判定
require "date"
today = Date.today

md = today.month * 100 + today.day #月日
ymd = today.year * 10000 + md #年月日

if is_prime(md)
	puts "今日" + md.to_i + "は素数です"
end
if is_prime(ymd)
	puts "今日" + ymd.to_i + "は素数です"
end
puts "\a"
hour = 0
a = b = c = d = 0
while hour <= 23
	minute = 0
	while minute <= 59
		second = 0
		while second <= 59
			mdHMs = 1000000*md + hour*10000 + minute*100 + second
			ymdHMs = 1000000*ymd + hour*10000 + minute*100 + second
			if is_prime(mdHMs)
				puts "今日#{hour}#{minute}#{second}秒の#{mdHMs}は素数です"
				a += 1
			end
			if is_prime(ymdHMs)
				puts "今年の今日#{hour}#{minute}#{second}秒の#{ymdHMs}は素数です"
				b += 1
			end
			second += 1
		end
		mdHM = 10000*md + 100*hour + minute
		ymdHM = 10000*ymd + 100*hour + minute
		if is_prime(mdHM)
			puts "今日#{hour}#{minute}分の#{mdHM}は素数です"
			c += 1
		end
		if is_prime(ymdHM)
			puts "今年の今日#{hour}#{minute}分の#{ymdHM}は素数です"
			d += 1
		end
		minute += 1
	end
	hour += 1
end
puts "#{a},#{b},#{c},#{d}\a"

繰り返しの部分書くのが面倒だった。

a,b,c,dで個数求めてみたわけですが、
月日時分秒:4078個
年月日時分秒:2847個
月日時分:74個
年月日時分:55個
の計7054個でした

今後もうちょい勉強してこれを通知するtwitterBOTを作るとしたら、規制を考えると下2つの通知が現実的かな

オラなんだかワクワクしてきたぞ

ちょっと東工大生っぽくてアレ(イメージ)