結果
| 問題 |
No.2795 Perfect Number
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-07-21 01:22:15 |
| 言語 | Common Lisp (sbcl 2.5.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 937 bytes |
| コンパイル時間 | 107 ms |
| コンパイル使用メモリ | 37,408 KB |
| 実行使用メモリ | 32,844 KB |
| 最終ジャッジ日時 | 2024-07-21 01:22:20 |
| 合計ジャッジ時間 | 3,713 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 2 TLE * 1 -- * 32 |
コンパイルメッセージ
; compiling file "/home/judge/data/code/Main.lisp" (written 21 JUL 2024 01:22:15 AM): ; wrote /home/judge/data/code/Main.fasl ; compilation finished in 0:00:00.064
ソースコード
(defun is-perfect-number (n)
(if (< n 2)
nil
(let ((sum 1)
(sqrt-n (isqrt n)))
(loop for i from 2 to sqrt-n do
(when (zerop (mod n i))
(incf sum i)
(let ((other (/ n i)))
(unless (= i other)
(incf sum other)))))
(= sum n))))
(defun read-integers ()
(let ((input (read-line)))
(mapcar #'parse-integer (split-sequence-from-string input))))
(defun split-sequence-from-string (str)
(let ((start 0)
(len (length str))
(result '()))
(loop for i from 0 to len
when (or (eql i len) (char= (char str i) #\Space))
do (when (> i start)
(push (subseq str start i) result))
(setf start (1+ i)))
(nreverse result)))
(defun main ()
(let ((n (first (read-integers))))
(if (is-perfect-number n)
(format t "Yes~%")
(format t "No~%"))))
(main)