Latar Belakang
Sudah terkenal dalam matematika bahwa bilangan bulat dapat dimasukkan ke dalam korespondensi satu-ke-satu dengan pasangan bilangan bulat. Ada banyak cara yang memungkinkan untuk melakukan ini, dan dalam tantangan ini, Anda akan menerapkan salah satunya dan operasi terbalik.
Tugas
Masukan Anda adalah bilangan bulat positif n > 0
. Hal ini diketahui bahwa terdapat bilangan bulat non-negatif yang unik a, b ≥ 0
sehingga . Output Anda adalah "versi terbalik" , bilangan bulat positif .n == 2a * (2*b + 1)
n
2b * (2*a + 1)
Anda dapat mengasumsikan bahwa input dan output sesuai dengan tipe data integer unsigned standar bahasa Anda.
Aturan dan penilaian
Anda dapat menulis program lengkap atau fungsi. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Uji kasus
Ini diberikan dalam format in <-> out
, karena fungsi yang akan diterapkan adalah kebalikannya sendiri: jika Anda memberi umpan balik ke hasilnya, Anda harus mendapatkan input asli.
1 <-> 1
2 <-> 3
4 <-> 5
6 <-> 6
7 <-> 8
9 <-> 16
10 <-> 12
11 <-> 32
13 <-> 64
14 <-> 24
15 <-> 128
17 <-> 256
18 <-> 48
19 <-> 512
20 <-> 20
28 <-> 40
30 <-> 384
56 <-> 56
88 <-> 224
89 <-> 17592186044416
Papan peringkat
Berikut ini adalah Stack Snippet untuk menghasilkan leaderboard biasa dan gambaran umum pemenang berdasarkan bahasa. Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
## Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda bisa menyimpan skor lama di headline, dengan mencoretnya. Contohnya:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (mis. Karena skor Anda adalah jumlah dari dua file atau Anda ingin membuat daftar hukuman penterjemah secara terpisah), pastikan bahwa skor sebenarnya adalah angka terakhir dalam tajuk:
## Perl, 43 + 2 (-p flag) = 45 bytes
Anda juga dapat membuat tautan nama bahasa yang kemudian akan muncul di cuplikan papan peringkat:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes