Sebuah kekuatan utama adalah bilangan bulat positif n yang dapat ditulis dalam bentuk n = p k mana p adalah prima dan k adalah bilangan bulat positif. Sebagai contoh, beberapa kekuatan utama adalah [2, 3, 5, 4, 9, 25, 8, 27, 125]
.
Selanjutnya, pertimbangkan kekuatan utama 2. Ini adalah [2, 4, 8, 16, ...]
dan dapat ditulis dalam bentuk 2 k . Mereka semua akan dimasukkan ketika mempertimbangkan kekuatan utama di bawah 20. Namun, 16 adalah kekuatan prima maksimal dengan basis prima 2 dalam rentang itu. Kekuatan prima p k adalah maksimal dalam suatu rentang jika itu adalah kekuatan tertinggi dari p dalam rentang itu. Kami hanya tertarik pada kekuatan prima maksimal di setiap rentang sehingga semua kekuatan prima yang lebih rendah harus dikecualikan.
Tujuan Anda adalah untuk menulis fungsi atau program yang mengambil bilangan bulat positif n dan output maksimal kekuatan utama dalam kisaran [2, 3, 4, ..., n]
.
Terima kasih kepada @ Peter Taylor untuk mengklarifikasi definisi kekuatan prima maksimal dan banyak lagi.
Aturan
- Ini adalah kode-golf jadi buat kode Anda sesingkat mungkin.
- Kekuatan prima maksimal dapat berupa output dalam urutan apa pun tetapi tidak boleh ada duplikat.
Uji kasus
n result
1 []
2 [2]
3 [2, 3]
4 [3, 4]
5 [3, 4, 5]
6 [3, 4, 5]
7 [3, 4, 5, 7]
20 [5, 7, 9, 11, 13, 16, 17, 19]
50 [11, 13, 17, 19, 23, 25, 27, 29, 31, 32, 37, 41, 43, 47, 49]
100 [11, 13, 17, 19, 23, 25, 29, 31, 37, 41, 43, 47, 49, 53, 59, 61, 64, 67, 71, 73, 79, 81, 83, 89, 97]
10000 <1229 results>
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, ..., 9887, 9901, 9907, 9923, 9929, 9931, 9941, 9949, 9967, 9973]
Daftar lengkap kekuatan prima maksimal untuk 10.000 dapat ditemukan di sini .