※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

「オイラープロジェクト91~100」の編集履歴(バックアップ)一覧に戻る

オイラープロジェクト91~100 - (2012/08/26 (日) 18:58:23) の編集履歴(バックアップ)


問い97

28433×2^7830457+1は素数でありこれの下10ケタを答えよという問題。
Lispは苦手だけどLispでなかったらこんなに簡潔には書けない気もする。
Lisp様様って感じ(俺がヘボいだけかな)



(defvar mask 10000000000)
mask
(setq mask 10000000000)
10000000000
(defun saiki (n m all)
  (if (< 0 m)
      (if (= (mod m 2) 1) 
	  (saiki (mod (* n n) mask) (floor (/ m 2)) (mod (* all n) mask))
	(saiki (mod (* n n) mask) (floor (/ m 2)) all))
    all))
saiki
(mod (+ (* (saiki 2 7830457 1)  28433) 1) mask)