Help us understand the problem. What is going on with this article?

今年の素数日を計算してみる

More than 5 years have passed since last update.

2012年の素数日は以前計算したのだが、今年2013年の素数日も計算してみる。
前のコード、コマンドライン第1引数を年と解釈して計算するように仕様を変えた。

primedays.hs
import Data.Time.Calendar
import System (getArgs)
isPrime n=not $ or $ map (\a->n `mod` a==0)
            $ takeWhile (\i->i*i<=n) [2..]
primeDays y=map (\a->filter (/= '-') $ show a) $ takeWhile (< fromGregorian (y+1) 1 1) 
      $ iterate (\d->addDays 1 d) $ fromGregorian y 1 1
main=do
  args<-getArgs
  case args of
    y:_ ->mapM_ (\a->putStrLn a) $ filter (isPrime.read) $ primeDays $ read y
    _ ->putStrLn "Usage: primedays <year>"

実行してみる

> ghc primedays
> primedays 2013
20130203
20130223
20130403
20130413
20130503
20130521
20130527
20130529
20130707
20130829
20131019
20131031
20131103
20131109
20131117
20131129
20131207
20131211
20131217
20131229

ということで、今日2/3の次は2/23のようです。
素数萌えの皆さん、参考まで。

hamukazu
主な使用言語:Haskell, ruby, C++
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away