Tantangan
Ada banyak angka yang dapat dinyatakan sebagai perbedaan dua kotak, atau sebagai perbedaan dua kubus, atau bahkan kekuatan yang lebih tinggi. Berbicara tentang kotak, ada berbagai cara menulis angka, katakanlah 75, sebagai perbedaan 2 kotak. Kamu bisa menulis:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
Jadi mari kita bicara tentang tantangannya. Pertama, pengguna memasukkan angka dan kemudian ia memasukkan nilai untuk n. Anda perlu menampilkan semua cara di mana angka itu dapat ditulis dalam bentuk aⁿ - bⁿ.
Masukan dan keluaran
Input akan berupa angka dan nilai n. Output Anda akan memiliki semua pasangan 'a' dan 'b' sedemikian rupa sehingga kondisi yang disebutkan di atas terpenuhi. Angka pertama dalam pasangan harus lebih besar dari yang kedua. Harap dicatat bahwa a, b, n dan nomor input semuanya bilangan bulat positif, dan n> 1 .
Contohnya
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
Mencetak gol
Ini adalah kode-golf , jadi kode terpendek menang!
sumber
==
dalam UniHaskell agak membingungkan, karena menunjukkan kesesuaian dalam matematika.05AB1E , 9 byte
Sangat tidak efisien untuk nilai input yang lebih besar.
Cobalah online!
Penjelasan
sumber
MATL , 11 byte
Cobalah online! Atau verifikasi semua kasus uji .
Penjelasan
sumber
APL (Dyalog) , 21 byte
Cobalah online!
Argumen kiri adalah
n
.sumber
Python 2 , 65 byte
Cobalah online!
sumber
Jelly , 10 byte
Pengambilan program penuh
i
, dann
yang mencetak pasangan[b,a]
dengan output kosong ketika tidak ada.Cobalah online!
Bagaimana?
sumber
JavaScript (ES7), 64 byte
Fungsi rekursif mengambil input dalam sintaks currying
(n)(p)
. Mengembalikan daftar pasangan integer yang dipisahkan oleh ruang, atau string kosong jika tidak ada solusi. Menggunakan algoritma yang sama dengan jawaban Python user202729 .Atau 60 byte dengan array 0-terminated, enkapsulasi:
Ini akan menghasilkan
[ 9, 7, [ 6, 2, 0 ] ]
untuk f (32) (2) .Uji kasus
Tampilkan cuplikan kode
sumber
Pyth , 14 byte
Coba di sini! , Alternatif!
sumber
Python 3 , 71 byte
Terima kasih Mr.Xcoder untuk menghemat beberapa byte!
Cobalah online!
Python 3 , 69 byte
Cobalah online!
Menggunakan pendekatan brute force x ^ 2 yang benar-benar manusia benar-benar menghemat byte.
sumber
Oktaf , 80 byte
Cobalah online!
sumber
Perl 6 , 45 byte
Cobalah online!
sumber