Ini tantangan pertamaku!
Latar Belakang
Angka sempurna adalah bilangan bulat positif, yaitu sama dengan jumlah semua pembagi, kecuali itu sendiri.
Begitu 6
juga angka sempurna, karena 1 + 2 + 3 = 6
.
Di sisi lain 12
tidak, karena 1 + 2 + 3 + 4 + 6 = 16 != 12
.
Tugas
Tugas Anda sederhana, tulis sebuah program, yang akan, misalnya n
, mencetak salah satu pesan ini:
Saya angka sempurna, karena
d1 + d2 + ... + dm = s == n
saya bukan angka sempurna, karenad1 + d2 + ... + dm = s [<>] n
Di mana
d1, ... dm
semua pembagi n
kecuali n
.
s
adalah jumlah semua pembagi d1, ..., dm
(sekali lagi, tanpa n
).
[<>]
adalah <
(jika s < n
) atau >
(jika s > n
).
Contohnya
Untuk n
menjadi 6
: "Saya seorang angka sempurna, karena 1 + 2 + 3 = 6 == 6"
untuk n
menjadi 12
: "Saya bukan angka sempurna, karena 1 + 2 + 3 + 4 + 6 = 16> 12"
untuk n
makhluk 13
: "Saya bukan angka sempurna, karena 1 = 1 <13"
Aturan
n
tidak lebih besar dari standar bahasa Andaint
.- Anda dapat membaca
n
dari input standar, dari argumen baris perintah atau dari file. - Pesan keluaran harus dicetak pada keluaran standar dan tidak ada karakter tambahan yang dapat muncul di keluaran (mungkin ada spasi tambahan atau baris baru)
- Anda tidak boleh menggunakan fungsi perpustakaan atau built-in apa pun yang akan menyelesaikan tugas (atau bagian utamanya) untuk Anda. Tidak
GetDivisors()
atau semacamnya. - Semua celah standar lainnya berlaku.
Pemenang
Ini adalah kode-golf sehingga kode terpendek dalam byte menang!
=
dan ==
dalam persamaan yang sama? Itu tidak masuk akal. Itu harus d1 + d2 + ... + dm = s = n
IMO.