Ini tantangan pertamaku!
Latar Belakang
Angka sempurna adalah bilangan bulat positif, yaitu sama dengan jumlah semua pembagi, kecuali itu sendiri.
Begitu 6juga angka sempurna, karena 1 + 2 + 3 = 6.
Di sisi lain 12tidak, 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, ... dmsemua pembagi nkecuali n.
sadalah jumlah semua pembagi d1, ..., dm(sekali lagi, tanpa n).
[<>]adalah <(jika s < n) atau >(jika s > n).
Contohnya
Untuk nmenjadi 6: "Saya seorang angka sempurna, karena 1 + 2 + 3 = 6 == 6"
untuk nmenjadi 12: "Saya bukan angka sempurna, karena 1 + 2 + 3 + 4 + 6 = 16> 12"
untuk nmakhluk 13: "Saya bukan angka sempurna, karena 1 = 1 <13"
Aturan
ntidak lebih besar dari standar bahasa Andaint.- Anda dapat membaca
ndari 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 = nIMO.