これが私の最初の挑戦です!
バックグラウンド
完全数は正の整数であり、それ自体を除くすべての約数の合計に等しくなります。
だから、6
完璧な数があるため、あります1 + 2 + 3 = 6
。
一方、12
そうではありません1 + 2 + 3 + 4 + 6 = 16 != 12
。
仕事
タスクは簡単です。プログラムを作成すると、n
次のメッセージのいずれかが表示されます。
私は完璧な数で
d1 + d2 + ... + dm = s == n
はありませんd1 + d2 + ... + dm = s [<>] n
どこ
d1, ... dm
のすべての約数あるn
ため除きますn
。
s
すべての約数の合計ですd1, ..., dm
(これも、なしn
)。(if )または(if )の
[<>]
いずれかです。<
s < n
>
s > n
例
用n
である6
"1 + 2 + 3 = 6 == 6ので、私は、完全数午前"
の場合n
であるが12
、 "私は完全数ないです1 + 2 + 3 + 4 + 6 = 16> 12なぜなら、"
についてn
ビーイング13
:「1 = 1 <13であるため、私は完全な数ではありません」
ルール
n
あなたの言語の標準より大きくありませんint
。n
標準入力、コマンドライン引数、またはファイルから読み取ることができます。- 出力メッセージは標準出力に印刷する必要があり、追加の文字を出力に表示することはできません(末尾に空白または改行がある場合があります)
- タスク(またはその主要部分)を解決する組み込み関数またはライブラリ関数を使用することはできません。いいえ、
GetDivisors()
またはそのようなもの。 - 他のすべての標準的な抜け穴が適用されます。
勝者
これはコードゴルフなので、バイト単位の最短コードが勝ちです!
=
と==
同じ式で?それは意味がありません。d1 + d2 + ... + dm = s = n
IMO である必要があります。