結果
問題 |
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)