Pecah dua angka menjadi faktorial mereka; jika mereka berbagi, kembalikan nilai falsey. Jika tidak, kembalikan nilai yang sebenarnya. (terinspirasi oleh pertanyaan terakhir ini )
Dengan kata lain, tulis setiap nomor input sebagai jumlah faktorial (dari bilangan bulat positif) dengan cara serakah mungkin; mengembalikan nilai kebenaran jika tidak ada faktorial yang muncul di kedua representasi, nilai falsey sebaliknya.
Contoh
Diberikan 20 dan 49:
20 = 3! + 3! + 3! + 2!
49 = 4! + 4! + 1!
Tidak ada faktorial yang muncul di kedua representasi, jadi kembalikan nilai yang sebenarnya.
Diberikan 32 dan 132:
132 = 5! + 3! + 3!
32 = 4! + 3! + 2!
3! muncul di kedua representasi, jadi kembalikan nilai falsey.
I / O
Input dan output dapat melalui sarana standar apa pun .
Input akan selalu berupa dua bilangan bulat tidak negatif; tidak ada batas atas pada bilangan bulat ini selain dari yang dibutuhkan bahasa Anda.
Output harus berupa nilai truey atau falsey . Nilai-nilai ini tidak harus konsisten untuk input yang berbeda, selama setiap output benar / salah.
Uji Kasus
Jika satu input adalah 0
, jawabannya akan selalu benar. Kasus uji kebenaran lainnya:
{6, 3}, {4, 61}, {73, 2}, {12, 1}, {240, 2}, {5, 264}, {2, 91}, {673, 18},
{3, 12}, {72, 10}, {121, 26}, {127, 746}
Jika kedua input bilangan bulat ganjil, atau jika kedua input bilangan bulat positif yang sama, maka output akan selalu salah. Kasus uji falsey lainnya:
{8, 5}, {7, 5}, {27, 47}, {53, 11}, {13, 123}, {75, 77}, {163, 160}, {148, 53},
{225, 178}, {285, 169}, {39, 51}, {207, 334}, {153, 21}, {390, 128}, {506, 584},
{626, 370}, {819, 354}
Ini kode-golf , byte paling sedikit menang!
sumber
Jawaban:
Jelly , 7 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Æ!
tampaknya sangat berguna dalam skenario tertentu.Python 3 ,
9391 byteCobalah online!
sumber
Python 2 , 47 byte
Cobalah online!
sumber
JavaScript (ES6), 71 byte
Bilangan bulat JavaScript terbatas pada presisi 53 bit, yang hanya cukup untuk 18!; ini berarti bahwa saya dapat menggunakan topeng 18 bit untuk melacak faktorial mana yang diperlukan.
sumber
PHP, 109 Bytes
Cobalah online!
sumber
Mathematica, 73 byte
formulir input
sumber
±x_:=First@IntegerPartitions[x,99,Range[99]!];!IntersectingQ[±#,±#2]&[4,61]
(69 byte). Dalam penyandian ISO 8859-1,±
adalah satu byte.C,
122119 byteQ
adalah fungsi utama. Itu harus dipanggil dengan tepat dua nilai integer positif. Ini keluar dengan kode keluar dari0
untuk truthy dan1
untuk falsy.Meskipun ini sepertinya tidak bekerja pada TIO, ini bekerja pada sistem saya dengan Homebrew disediakan
gcc 7.1.0
.Saya belum
C
bermain golf cukup lama, jadi tips bermain golf sangat dihargai!sumber