結果
| 問題 |
No.2326 Factorial to the Power of Factorial to the...
|
| コンテスト | |
| ユーザー |
Kitatai
|
| 提出日時 | 2023-05-28 15:51:37 |
| 言語 | Common Lisp (sbcl 2.5.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 751 bytes |
| コンパイル時間 | 1,314 ms |
| コンパイル使用メモリ | 27,392 KB |
| 実行使用メモリ | 27,008 KB |
| 最終ジャッジ日時 | 2024-12-27 09:08:20 |
| 合計ジャッジ時間 | 2,694 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | RE * 2 |
| other | RE * 20 |
コンパイルメッセージ
; compiling file "/home/judge/data/code/Main.lisp" (written 27 DEC 2024 09:08:17 AM): ; file: /home/judge/data/code/Main.lisp ; in: DEFUN FACD2 ; (PI COUNT) ; ; caught ERROR: ; COMMON-LISP:PI names a defined constant, and cannot be used in LET. ; (DEFUN FACD2 (N P) ; (PROG (PI COUNT) ; (SETQ PI P) ; (SETQ COUNT 0) ; LOOP ; (IF (> PI N) ; (RETURN COUNT) ; (SETQ COUNT #)) ; (SETQ PI (* PI P)) ; (GO LOOP))) ; --> SB-IMPL::%DEFUN SB-IMPL::%DEFUN SB-INT:NAMED-LAMBDA ; ==> ; #'(SB-INT:NAMED-LAMBDA FACD2 ; (N P) ; (DECLARE (SB-C::TOP-LEVEL-FORM)) ; (BLOCK FACD2 ; (PROG (PI COUNT) ; (SETQ PI P) ; (SETQ COUNT 0) ; LOOP ; (IF (> PI N) ; (RETURN COUNT) ; (SETQ #)) ; (SETQ PI #) ; (GO LOOP)))) ; ; caught STYLE-WARNING: ; The variable N is defined but never used. ; ; caught STYLE-WARNING: ; The variable P is defined but never used. ; in: PRINC (SOLVE (READ) (READ)) ; (PRINC (SOLVE (READ) (READ))) ; ; note: deleting unreachable code ; file: /home/judge/data/code/Main.lisp ; in: DEFUN SOLVE ; (RUI F F) ; ; caught WARNING: ; undefined variable: COMMON-LISP-USER::F ; (SETQ F (FACTORIAL N)) ; ; caught WARNING: ; undefined variable: COMMON-LISP-USER::F ; ; compilation unit finished ; Undefined variable: ; F ; caught 1 ERROR condition ; caught 2 WARNING conditions ; caught 2 STYLE-WARNING conditions ; printed 1 note ; wrote /home/judge/data/code/Main.fasl ; compilation finished in 0:00:00.027
ソースコード
(defun facd (n p a)
(cond ((equal n 0) 0)
((not (equal (mod a p) 0)) (facd (- n 1) p (* a (- n 1))))
(t (mod (+ (facd n p (/ a p)) 1) 1000000007))
)
)
(defun facd2 (n p)
(prog (pi count)
(setq pi p)
(setq count 0)
loop
(if (> pi n) (return count)
(setq count (mod (+ count (/ n pi)) 1000000007))
)
(setq pi (* pi p))
(go loop)
)
)
(defun factorial (n)
(if (= n 1) 1
(mod (* n (factorial (- n 1))) 1000000007)
)
)
(defun rui (n p)
(if (= n 1) p
(mod (* p (rui (- n 1) p)) 1000000007)
)
)
(defun solve (n p)
(setq f (factorial n))
(mod (* (facd2 n p) (rui f f)) 1000000007)
)
(princ (solve (read) (read)))
Kitatai