多角数の一般項
--
-- + from Wikipedia
--
-- ex : map (polyNum 3) [1 .. 5] => [1,3,6,10,15]
--
polyNum :: Integral a => a -> a -> a
polyNum p n = div (n * ((p - 2) * n - (p - 4))) 2



-----------------------------------------
-- 約数関連
-----
lucasList :: [Integer]
lucasList = lucas' 2 1
  where lucas' a b = seq a $ a : lucas' b (a + b)

--
-- 多角数のリスト
--
-- + "0" から始まるので注意 !!
--
-- ex : polyNumList 3 => [0,1,3,6,10,15,21,28,36,45,55 ..]
--
lucasList = lucas' 2 1
  where lucas' a b = seq a $ a : lucas' b (a + b)

--
-- 多角数のリスト
--
-- + "0" から始まるので注意 !!
--
-- ex : polyNumList 3 => [0,1,3,6,10,15,21,28,36,45,55 ..]
--