Dengan bilangan bulat n >= 2
, menghasilkan eksponen terbesar dalam faktorisasi utamanya. Ini adalah urutan OEIS A051903 .
Contoh
Mari n = 144
. Faktorisasi utamanya adalah 2^4 * 3^2
. Eksponen terbesar adalah 4
.
Uji Kasus
2 -> 1
3 -> 1
4 -> 2
5 -> 1
6 -> 1
7 -> 1
8 -> 3
9 -> 2
10 -> 1
11 -> 1
12 -> 2
144 -> 4
200 -> 3
500 -> 3
1024 -> 10
3257832488 -> 3
Jawaban:
05AB1E , 2 byte
Cobalah online!
Bagaimana?
sumber
Python 2 ,
625756 byteCobalah online!
sumber
f=lambda n,k=0:max(k%n-n%(k/n+2)**(k%n)*n,k<n**2and f(n,k+1))
Jelly , 3 byte
Cobalah online!
Ini juga bekerja di M . Cobalah online!
sumber
Haskell ,
6160504846 byte-2 byte terima kasih kepada xnor
Cobalah online!
45 byte dengan impor:
Cobalah secara Online!
sumber
0^
lucu, tetapi lebih pendek untuk hanya memeriksa kondisi sebagai boolean.Ohm v2 , 2 byte
Cobalah online!
Penjelasan?
Tidak.
sumber
Python 2 , 78 byte
Cobalah online!
-5 Terima kasih untuk OVs .
Jawaban ini tidak melakukan pemeriksaan prima. Sebagai gantinya, ia mengambil keuntungan dari fakta bahwa eksponen tertinggi dari faktor prima akan lebih besar atau sama dengan eksponen faktor lain dalam faktorisasi angka apa pun.
sumber
Japt
-h
,97 byteCobalah
sumber
ü
menciptakan sub-array dengan nilai yang sama. Ini tidak diurutkan menurut nilai pertama tapi itu tidak relevan di sini.Mathematica, 27 byte
Cobalah online!
sumber
Max@@Last/@FactorInteger@#&
,. Sayangnya ini tidak menyimpan byte.MATL , 4 byte
Cobalah online!
sumber
Brachylog , 5 byte
Cobalah online!
Penjelasan
sumber
Sekam , 5 byte
Cobalah online!
p
- Mendapat faktor utama.g
- Mengelompokkan nilai yang berdekatan.mL
- Mendapat panjang masing-masing kelompok.▲
- Maksimal.sumber
APL (Dyalog) , 19 byte
Cobalah online!
Bagaimana?
2pco⎕
- Array 2D faktor utama dan eksponen1↓
- Jatuhkan faktor-faktornya⌈/
- maksimumsumber
Javascript 54 byte
* dengan asumsi tumpukan tak terbatas (seperti halnya dalam tantangan kode-golf)
sumber
PARI / GP, 24 byte
Jika saya tidak menghitung
n->
bagian, itu adalah 21 byte.sumber
Oktaf , 25 byte
Cobalah online!
Penjelasan
factor
menghasilkan array eksponen utama (mungkin diulang) Output keduamode
memberi berapa kali mode (yaitu entri paling berulang) muncul.sumber
Pyth , 7 byte
Coba di sini.
sumber
eS/LPQP
(7 byte),eSlM.gkP
(8 byte).Python 2 ,
9084 byteCobalah online!
sumber
Gaia , 4 byte
Cobalah online!
ḋ
- Menghitung faktorisasi utama sebagai pasangan [prima, eksponen] .⌠
- Memetakan dan mengumpulkan hasilnya dengan nilai maksimal.)
- Elemen terakhir (eksponen).)
- Elemen terakhir (eksponen maksimal)Gaia , 4 byte
Cobalah online!
ḋ
- Menghitung faktorisasi utama sebagai pasangan [prima, eksponen] .)¦
- Peta dengan elemen terakhir (eksponen).⌉
- Mendapat elemen maksimal.sumber
MY , 4 byte
Cobalah online!
Penjelasan?
sumber
Oktaf : 30 byte
a=factor(x)
mengembalikan vektor yang mengandung faktor primax
. Ini adalah vektor yang diurutkan dalam urutan menaik di mana perkalian semua angka dalamfactor(x)
hasilx
itu sendiri sehingga setiap angka dalam vektor adalah prima.histc(...,a)
menghitung histogram pada vektor faktor prima di mana tong adalah faktor prima. Histogram menghitung berapa kali kita telah melihat setiap bilangan prima sehingga menghasilkan eksponen dari setiap bilangan prima. Kita bisa sedikit curang di sini karena meskipunfactor(x)
akan mengembalikan angka atau tempat duplikat, hanya satu dari sampah yang akan menangkap jumlah total kali kita melihat bilangan prima.max(...)
dengan demikian mengembalikan eksponen terbesar.Cobalah online!
sumber
Alice , 17 byte
Cobalah online!
Penjelasan
Ini hanya kerangka kerja untuk program aritmatika ish sederhana dengan I / O desimal. Ini
...
adalah program aktual, yang sudah memiliki input pada stack dan meninggalkan output di atas stack.Alice sebenarnya memiliki built-in untuk mendapatkan factorisation utama dari integer (bahkan dengan pasangan prime-eksponen), tetapi yang terpendek yang saya buat dengan menggunakannya adalah 10 byte lebih lama dari ini.
Alih-alih idenya adalah bahwa kami berulang kali membagi satu salinan dari masing-masing faktor utama yang berbeda dari input, hingga kami mencapai 1 . Jumlah langkah yang diambil ini sama dengan eksponen utama terbesar. Kami akan menyalahgunakan kepala kaset sebagai variabel konter.
sumber
Julia,
605240 byte-12 + koreksi berkat Steadybox
sumber
print()
. Juga, saya tidak bisa mendapatkan kode untuk berjalan di TIO seperti ini, saya menganggap itu berfungsi pada beberapa versi lain dari bahasa yang tidak tersedia di sana? Ini berjalan dengan baik di TIO:print(maximum(collect(values(factor(parse(BigInt,readline()))))))
print()
diperlukan karena jawabannya harus berupa program lengkap (yang menampilkan output) atau fungsi (yang mengembalikan output). Kalau tidak, solusi Anda baik-baik saja. Tampaknya Anda dapat menyimpan beberapa byte (dan menghindari cetakan) dengan cara ini:f(x)=maximum(collect(values(factor(x))))
Sebenarnya , 4 byte
Cobalah online!
sumber
Python 2 , 64 byte
-4 byte terima kasih kepada H.PWiz.
Cobalah online!
Port jawaban H.PWiz's Haskell . Saya hanya membagikan ini karena saya bangga bahwa saya dapat memahami kode Haskell ini dan menerjemahkannya. : P
sumber
range(1,n)
bekerjarange(1, n)
menghasilkan semua bilangan bulat dalam [1, n).a
Aksioma, 61 byte
Ini adalah pertama kalinya saya menemukan mungkin mendefinisikan fungsi tanpa menggunakan tanda kurung (). Alih-alih "f (n) ==" "fn ==" satu karakter lebih sedikit ...
sumber
Racket ,
8379 byteCobalah online!
(Saya tidak yakin apakah ada konsensus tentang apa yang merupakan solusi Racket lengkap, jadi saya akan pergi dengan konvensi Mathematica bahwa fungsi murni diperhitungkan.)
Bagaimana itu bekerja
factorize
memberi faktorisasi sebagai daftar pasangan:(factorize 108)
memberi'((2 2) (3 3))
. Elemen kedua dari pasangan diberikan olehcadr
, singkatan untuk komposisicar
(kepala daftar) dengancdr
(ekor daftar).Saya merasa konyol melakukan
(cadr (argmax cadr list))
untuk menemukan maksimum dari elemen kedua, tetapimax
tidak bekerja pada daftar:(max (map cadr list))
tidak melakukan apa yang kita inginkan. Saya bukan ahli Racket, jadi mungkin ada cara standar yang lebih baik untuk melakukan ini.Racket, 93 byte
Cobalah online!
Bagaimana itu bekerja
Versi alternatif yang tidak mengimpor
factorize
dan malah melakukan semuanya dari awal, lebih atau kurang. Fungsi(p m d)
menemukan kekuatan tertinggid
yang membagim
dan kemudian kita hanya menemukan nilai tertinggi(p n d)
untukd
antara2
dann
. (Kita tidak perlu membatasi ini pada bilangan prima, karena tidak akan ada kekuatan gabungan yang bekerja lebih baik daripada kekuatan utama.)sumber
max
solusi standar(apply max (map cadr list)
tetapi(cadr (argmax cadr list))
sayangnya lebih pendek.J, 9 byte
Maks
<./
semua eksponen utama_&q:
Cobalah online!
sumber
APL (NARS), 15 karakter, 30 byte
uji:
komentar:
sumber