Latar Belakang
Nomor 1729 adalah nomor Hardy-Ramanujan. Properti luar biasa ditemukan oleh S. Ramanujan (yang secara luas dianggap sebagai ahli matematika India terbesar 1 ), ketika GH Hardy mengunjungi dia di rumah sakit. Dengan kata-kata Hardy sendiri:
Saya ingat pernah melihatnya ketika dia sakit di Putney. Saya telah naik taksi nomor 1729 dan mengatakan bahwa jumlah itu bagi saya agak membosankan, dan saya berharap itu bukan pertanda buruk. "Tidak," jawabnya, "ini adalah angka yang sangat menarik; ini adalah angka terkecil yang dapat diekspresikan sebagai jumlah dari dua kubus dengan dua cara yang berbeda."
Selain itu, ia memiliki banyak properti luar biasa lainnya. Salah satu properti tersebut adalah bahwa itu adalah Nomor Harshad, yaitu jumlah digitnya (1 + 7 + 2 + 9 = 19) adalah faktornya. Itu juga, yang spesial. Seperti yang ditunjukkan Masahiko Fujiwara, 1729 adalah bilangan bulat positif yang, ketika digit-digitnya ditambahkan bersama, menghasilkan jumlah yang, ketika dikalikan dengan pembalikannya, menghasilkan angka asli:
1 + 7 + 2 + 9 = 19
19 × 91 = 1729
Bilangan bulat positif yang memiliki properti seperti itu adalah apa yang saya definisikan sebagai Nomor Harshad Hardy-Ramanujan- ish , untuk keperluan posting ini. (Mungkin ada istilah teknis untuk itu, tapi saya tidak bisa menemukannya, kecuali kalau itu anggota A110921 )
Tugas
Diberikan bilangan bulat positif n
sebagai input, output truthy atau falsey nilai berdasarkan apakah input n
adalah Hardy-Ramanujan- ish Harshad Nomor. Keluarkan kebenaran, jika ya. Jika tidak, output falsey.
Perhatikan bahwa hanya ada empat Harshad Nomor Hardy-Ramanujan- ish yang ada ( 1
,81
, 1458
dan 1729
), dan Anda dapat menulis kode yang memeriksa kesetaraan dengan mereka. Tapi saya tidak berpikir itu akan menyenangkan.
Memasukkan
Program Anda harus mengambil bilangan bulat positif (angka alami, dengan kata lain). Ini bisa mengambilnya dengan cara apa pun kecuali menganggapnya ada dalam variabel. Membaca dari jendela modal, kotak input, baris perintah, file dll diperbolehkan. Mengambil input sebagai argumen fungsi juga diperbolehkan.
Keluaran
Program Anda harus menampilkan nilai yang benar atau salah. Mereka tidak perlu konsisten. Program Anda dapat menampilkan dengan cara apa pun kecuali menulis output ke variabel. Menulis ke layar, baris perintah, file dll. Diperbolehkan. Keluaran dengan fungsi return
juga diizinkan.
Aturan tambahan
Anda tidak boleh menggunakan built-in untuk menyelesaikan tugas (saya ingin tahu bahasa apa pun akan memiliki built-in, tapi kemudian Mathematica ... )
Berlaku celah standar .
Uji Kasus
Input Output
1 Truthy (because 1 × 1 (reverse of 1) = 1)
2 Falsey
3 Falsey
4 Falsey
5 Falsey
81 Truthy (because 9 (8 + 1) × 9 (reverse of 9) = 81)
1458 Truthy (because 18 (1 + 4 + 5 + 8) × 81 (reverse of 18) = 1458)
1729 Truthy (because 19 (1 + 7 + 2 + 9) × 91 (reverse of 19) = 1729)
1730 Falsey
2017 Falsey
Kriteria Kemenangan
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
1 Setiap tahun, pada 22 nd Desember, hari ulang tahun Srinivasa Ramanujan, Matematika Hari Nasional diamati di India. Rekan-rekannya, orang-orang di Cambridge, membandingkannya dengan Jacobi, Euler, dan bahkan Newton. Selain hebat, ia hampir tidak memiliki pelatihan formal dalam Matematika Murni , tetapi tetap, ia membuat kontribusi penting untuk analisis matematika , teori bilangan , seri tak terbatas , dan pecahan lanjutan . Sayangnya, ia meninggal pada usia awal 32 dengan ribuan penemuan matematika di benaknya. Sebuah film juga dibuat tentang dia, yang didasarkan pada biografinya ,Pria yang Tahu Infinity .
Jawaban:
Neim , 5 byte
Penjelasan:
Cobalah!
sumber
ArnoldC, 888 Bytes
Saya tahu, saya hanya memeriksa kesetaraan, tetapi itu seharusnya tidak menjadi bagian yang menyenangkan dari program ini.
Selamat membaca. :)
Menambahkan beberapa baris baru di sana agar lebih mudah dibaca:
Cobalah online
sumber
Majelis x86,
55353331 byte:Mengasumsikan ABI di mana nilai kembali dalam EAX dan parameter didorong pada tumpukan ... sehingga hampir semuanya.
sumber
Brachylog , 8 byte
Cobalah online!
sumber
Haskell ,
5655 byteCobalah online!
Pointfree: (56 byte)
Cobalah online!
Membosankan: (24 byte)
Cobalah online!
sumber
JavaScript ES6,
5957 byteCobalah online!
Pada dasarnya terbagi menjadi array digit, dan bergabung dengan
+
dan mengevaluasi ekspresi itu pada dasarnya menjumlahkan digit.string*string
akan secara otomatis mengubah string menjadi int. Mengambil input sebagai stringsumber
Mathematica, 42 byte
sumber
Ruby, 69 Bytes
Coba pertama, dengan integer sebagai input:
Percobaan kedua, dengan string sebagai input:
sumber
.split('')
dapat dibuat.chars
Batch, 164 byte
Mencetak 1 pada kesuksesan, tidak ada output pada kegagalan.
sumber
JavaScript (ES6), 72 byte
Ini adalah pengajuan ES6 yang valid. Tambahkan
f=
di awal dan aktifkan likef(arg)
.Cuplikan Tes:
sumber
Kotlin,
111108 byteCobalah online!
Seperti tipikal untuk solusi JVM yang dikompilasi secara statis, banyak byte yang hilang hanya pada deklarasi fungsi utama dan memanggil print (). Daging fungsi adalah 60ish byte, yang tidak buruk sama sekali untuk tujuan umum bahasa yang diketik secara statis seperti Kotlin.
Kotlin, solusi membosankan, 69 byte
Cobalah online!
sumber
05AB1E , 5 byte
Cobalah online!
sumber
DSODR*Q
adalah apa yang saya miliki sebelum mencari.D
.Python 2 , 55 byte
Cobalah online!
Penjelasan
Sebuah
eval()
solusi adalahsedikit2 byte lagi ...Solusi alternatif
(tidak valid?),4229 byteSolusi ini memeriksa kesetaraan terhadap semua angka.
Cobalah online!
sumber
[1,81,1458,1729].__contains__
Cheddar , 60 byte
Cobalah online!
sumber
NewStack , 16 byte
Rinciannya:
Menggunakan 1729 sebagai contoh
Mencetak apa pun jika salah, dan input asli jika benar.
sumber
¹
itu tumpukan terdiri dari[1]
. Dan karena kami mendefinisikanf
atauf(x)
menyamakan input Anda, mengalikan setiap elemen dalam stack dengan fungsif
pada dasarnya menggantikan1
dengan input kami. (Karena[1] * f(x)
=[f]
)MATL , 11 byte
Cobalah online!
t
- mengambil input dan menduplikatnyaV!U
- membaginya menjadi digit individus
- jumlahkan angka-angka itut
- Gandakan jumlah ituVP
- ubah itu menjadi string, balikkan dari kiri ke kananU
- ubah itu kembali menjadi angka*
- kalikan dua nilai terakhir (digit-jumlah dan versi membalik kiri-ke-kanannya)=
- periksa apakah ini sama dengan input asli (yang merupakan satu-satunya nilai lain dalam tumpukan)sumber
Japt, 8 byte
Jalankan secara online
sumber
Jelly , 8 byte
Cobalah online!
sumber
DS×Ṛ$Ḍ=
menghemat satu byte.Perl 6 , 30 byte
sumber
PHP , 52 byte
Cobalah online!
PHP , 36 byte
Cobalah online!
sumber
APL (Dyalog) , 18 byte
Cobalah online!
sumber
Pari / GP ,
5652 byteCobalah online!
sumber
MathGolf , 5 byte
Cobalah online!
Hampir sama dengan byte solusi Neim untuk byte.
sumber