結果
| 問題 | No.2795 Perfect Number |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-07-21 01:24:07 |
| 言語 | Common Lisp (sbcl 2.6.3) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 637 bytes |
| 記録 | |
| コンパイル時間 | 47 ms |
| コンパイル使用メモリ | 34,192 KB |
| 実行使用メモリ | 42,320 KB |
| 最終ジャッジ日時 | 2026-04-03 02:57:57 |
| 合計ジャッジ時間 | 7,028 ms |
|
ジャッジサーバーID (参考情報) |
judge4_1 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | TLE * 1 -- * 2 |
| other | -- * 35 |
コンパイルメッセージ
; compiling file "/home/judge/data/code/Main.lisp" (written 03 APR 2026 02:57:41 AM): ; file: /home/judge/data/code/Main.lisp ; in: DEFUN MAIN ; (IF (SOME (LAMBDA (X) (= X LIMIT)) (GENERATE-PERFECT-NUMBERS LIMIT)) ; (FORMAT T "Yes~%") ; (FORMAT T "No~%")) ; ; note: deleting unreachable code ; ; compilation unit finished ; printed 1 note ; wrote /home/judge/data/code/Main.fasl ; compilation finished in 0:00:00.007
ソースコード
(defun is-mersenne-prime (p)
(let ((mp (1- (expt 2 p))))
(loop for i from 2 to (isqrt mp) never (zerop (mod mp i)))))
(defun generate-perfect-numbers (limit)
(let ((perfect-numbers '()))
(loop for p from 2 do
(when (is-mersenne-prime p)
(let ((perfect-num (* (1- (expt 2 p)) (expt 2 (1- p)))))
(when (<= perfect-num limit)
(push perfect-num perfect-numbers)))))
(nreverse perfect-numbers)))
(defun main ()
(let ((limit (read)))
(if (some (lambda (x) (= x limit)) (generate-perfect-numbers limit))
(format t "Yes~%")
(format t "No~%"))))
(main)