結果

問題 No.2795 Perfect Number
ユーザー Lisp_CoderLisp_Coder
提出日時 2024-07-21 01:22:15
言語 Common Lisp
(sbcl 2.3.8)
結果
TLE  
実行時間 -
コード長 937 bytes
コンパイル時間 107 ms
コンパイル使用メモリ 37,408 KB
実行使用メモリ 32,844 KB
最終ジャッジ日時 2024-07-21 01:22:20
合計ジャッジ時間 3,713 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 10 ms
27,520 KB
testcase_01 AC 10 ms
22,144 KB
testcase_02 AC 18 ms
21,888 KB
testcase_03 AC 10 ms
22,016 KB
testcase_04 AC 9 ms
22,144 KB
testcase_05 TLE -
testcase_06 -- -
testcase_07 -- -
testcase_08 -- -
testcase_09 -- -
testcase_10 -- -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
testcase_14 -- -
testcase_15 -- -
testcase_16 -- -
testcase_17 -- -
testcase_18 -- -
testcase_19 -- -
testcase_20 -- -
testcase_21 -- -
testcase_22 -- -
testcase_23 -- -
testcase_24 -- -
testcase_25 -- -
testcase_26 -- -
testcase_27 -- -
testcase_28 -- -
testcase_29 -- -
testcase_30 -- -
testcase_31 -- -
testcase_32 -- -
testcase_33 -- -
testcase_34 -- -
testcase_35 -- -
testcase_36 -- -
testcase_37 -- -
権限があれば一括ダウンロードができます
コンパイルメッセージ
; 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

ソースコード

diff #

(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)
0