Kekuatan yang sempurna adalah sejumlah bentuk a**b
, di mana a>0
dan b>1
.
Sebagai contoh, 125
adalah kekuatan yang sempurna karena dapat dinyatakan sebagai 5**3
.
Tujuan
Tugas Anda adalah menulis program / fungsi yang menemukan n
kekuatan sempurna -th, diberi bilangan bulat positif n
.
Spesifikasi
- Kekuatan sempurna pertama adalah
1
(yang1**2
). - Input / output dalam format yang masuk akal.
- Built-in diizinkan .
Informasi lebih lanjut
Mencetak gol
Ini adalah kode-golf . Solusi terpendek dalam byte menang.
testcases
input output
1 1
2 4
3 8
4 9
5 16
6 25
7 27
8 32
9 36
10 49
code-golf
arithmetic
number-theory
bocor Nun
sumber
sumber
Jawaban:
Jelly , 11 byte
Cobalah online! .
Latar Belakang
Setiap bilangan bulat positif k dapat difaktorkan secara unik sebagai produk dari kekuatan bilangan prima m pertama , yaitu, k = p 1 α 1 ⋯ p m α m , di mana α m > 0 .
Kami memiliki yang a b ( b> 1 ) untuk beberapa bilangan bulat positif a jika dan hanya jika b adalah pembagi dari semua eksponen α j .
Jadi, bilangan bulat k> 1 adalah daya sempurna jika dan hanya jika gcd (α 1 , ⋯, α m ) ≠ 1 .
Bagaimana itu bekerja
sumber
a_n > 0
?" Menurut saya dalam faktorisasi untuk 21 ^ 2 eksponen untuk p = 2 dan p = 5 adalah nol.Mathematica, 34 byte
Menghasilkan n × n berbagai A ij = i 1 + j , merata, dan pengembalian yang n th elemen.
sumber
CJam, 16 byte
Uji di sini.
Penjelasan
Ini menggunakan ide yang mirip dengan jawaban Mathematica dari LegionMammal.
sumber
Oktaf,
573130 byteSaya hanya memperhatikan lagi bahwa Oktaf tidak perlu
ndgrid
(sementara Matlab) =)sumber
05AB1E , 12 byte
Kode:
Menggunakan pengodean CP-1252 . Cobalah online! .
sumber
Sage (versi 6.4, mungkin juga yang lain):
6463Menciptakan fungsi lambda yang mengembalikan
n
kekuatan sempurna. Kami mengandalkan fakta bahwa itu ditemukan dalamn^2
bilangan bulat pertama . (1+n^2
Diperlukan untukn=1,2
.0+k
Bit perlu dikonversiint(k)
keInteger(k)
.)Byte off untuk
xrange
->range
, terima kasih Dennis.Fakta yang menyenangkan:
0
adalah kekuatan yang sempurna menurut standar Sage, untungnya, karena itu1
adalah elemen pertama dalam daftar, bukan ke-0 :)sumber
is_perfect_power()
Pyth -
1211 bytePendekatan yang jelas, hanya melewati dan memeriksa semua angka.
Test Suite .
sumber
MATL, 9 byte
Cobalah online
Ini adalah port dari solusi Octaf Flawr ke MATL, buat matriks kekuatan hingga
n^(n+1)
, dan dapatkan yangn
ke-1.sumber
Julia,
6432 byteIni adalah fungsi anonim yang menerima integer dan mengembalikan integer. Untuk menyebutnya, tetapkan ke variabel.
Idenya di sini adalah sama seperti dalam jawaban Mathematica dari LegionMammal : Kami mengambil produk luar dari bilangan bulat 1 ke n dengan 2 ke n + 1, menutup kolom matriks yang dihasilkan dengan bijaksana, mengambil elemen unik, mengurutkan, dan mendapatkan n elemen ke- .
Cobalah online! (termasuk semua kasus uji)
sumber
JavaScript (ES6), 87
Kurang golf
Uji
sumber
Sebenarnya, 18 byte (tidak bersaing)
Cobalah online! (mungkin tidak berfungsi karena membutuhkan pembaruan)
Solusi ini tidak bersaing karena saya memperbaiki bug
E
setelah tantangan ini diposting.Penjelasan:
sumber
> <>, 108 byte
Program ini membutuhkan nomor input untuk hadir di tumpukan sebelum menjalankan.
Butuh cukup banyak untuk mengurangi jumlah byte yang terbuang hingga 7!
Setelah memeriksa untuk melihat apakah inputnya
1
, program memeriksa setiap angkan
,, dari 4 pada gilirannya untuk melihat apakah itu kekuatan yang sempurna. Ini dilakukan dengan memulai dengana=b=2
. Jikaa^b == n
, kami telah menemukan kekuatan sempurna, maka kurangi jumlah kekuatan sempurna yang tersisa untuk ditemukan - jika kami sudah menemukan jumlah yang tepat, hasilkan.Jika
a^b < n
,b
bertambah. Jikaa^b > n
,a
bertambah. Kemudian, jikaa == n
, kami telah menemukan bahwan
itu bukan kekuatan yang sempurna, maka kenaikann
, pengaturan ulanga
danb
.sumber
J, 29 byte
Berdasarkan @ LegionMammal978 ini metode .
Pemakaian
Penjelasan
sumber
JavaScript (ES7), 104 byte
Bekerja dengan menghitung semua kekuatan tidak lebih dari n², mengurutkan daftar yang dihasilkan dan mengambil elemen ke-n.
sumber
Jawa, 126
sumber