Definisi
- Dua angka adalah co-prime jika satu-satunya pembagi positifnya adalah
1
. - Daftar angka adalah saling co-prime jika setiap pasangan angka dalam daftar itu adalah co-prime satu sama lain.
- Faktorisasi angka
n
adalah daftar angka yang produknyan
.
Tugas
Diberikan angka positif n
, hasilkan faktorisasi n
bersama yang sama dengan panjang maksimum yang tidak termasuk 1
.
Contoh
Sebab n=60
, jawabannya adalah [3,4,5]
, karena 3*4*5=60
dan tidak ada faktorisasi co-prime yang saling lain tanpa 1
memiliki panjang lebih besar dari atau sama dengan 3
, panjang faktorisasi.
Aturan dan kebebasan
- Anda dapat menggunakan format input / output yang masuk akal.
- Entri dalam daftar output tidak perlu disortir.
Testcases
n output
1 []
2 [2]
3 [3]
4 [4]
5 [5]
6 [2, 3]
7 [7]
8 [8]
9 [9]
10 [2, 5]
11 [11]
12 [3, 4]
13 [13]
14 [2, 7]
15 [3, 5]
16 [16]
17 [17]
18 [2, 9]
19 [19]
20 [4, 5]
21 [3, 7]
22 [2, 11]
23 [23]
24 [3, 8]
25 [25]
26 [2, 13]
27 [27]
28 [4, 7]
29 [29]
30 [2, 3, 5]
31 [31]
32 [32]
33 [3, 11]
34 [2, 17]
35 [5, 7]
36 [4, 9]
37 [37]
38 [2, 19]
39 [3, 13]
40 [5, 8]
41 [41]
42 [2, 3, 7]
43 [43]
44 [4, 11]
45 [5, 9]
46 [2, 23]
47 [47]
48 [3, 16]
49 [49]
50 [2, 25]
51 [3, 17]
52 [4, 13]
53 [53]
54 [2, 27]
55 [5, 11]
56 [7, 8]
57 [3, 19]
58 [2, 29]
59 [59]
60 [3, 4, 5]
61 [61]
62 [2, 31]
63 [7, 9]
64 [64]
65 [5, 13]
66 [2, 3, 11]
67 [67]
68 [4, 17]
69 [3, 23]
70 [2, 5, 7]
71 [71]
72 [8, 9]
73 [73]
74 [2, 37]
75 [3, 25]
76 [4, 19]
77 [7, 11]
78 [2, 3, 13]
79 [79]
80 [5, 16]
81 [81]
82 [2, 41]
83 [83]
84 [3, 4, 7]
85 [5, 17]
86 [2, 43]
87 [3, 29]
88 [8, 11]
89 [89]
90 [2, 5, 9]
91 [7, 13]
92 [4, 23]
93 [3, 31]
94 [2, 47]
95 [5, 19]
96 [3, 32]
97 [97]
98 [2, 49]
99 [9, 11]
Mencetak gol
Ini adalah kode-golf . Jawaban terpendek dalam byte menang.
code-golf
number-theory
primes
division
Biarawati Bocor
sumber
sumber
1
.)Jawaban:
Matematika , 24 byte
Cobalah online!
sumber
#^#2&@@@FactorInteger@#&[1]
kembali{1}
dalam Mathematica. Tapi itu berhasil di Matematika.FactorInteger
berbeda. :)Brachylog , 4 byte
Cobalah online!
Penjelasan
sumber
05AB1E ,
35 byte+2 byte untuk memperbaiki kasus tepi
1
. Terima kasih kepada Riley untuk tambalannya (dan untuk test suite, 05ab1e saya tidak terlalu kuat!)Test suite di Coba online!
Bagaimana?
sumber
1
.CJam , 9 byte
Cobalah online!
Pisahkan input menjadi kekuatan utama penyusunnya dan hapus
1
s (hanya diperlukan untuk input1
).sumber
Haskell , 51 byte
(2#)
adalah fungsi anonim mengambil bilangan bulat dan mengembalikan daftar.Gunakan sebagai
(2#) 99
.Cobalah online!
Terinspirasi oleh trik daya yang digunakan beberapa orang dalam tantangan nomor bebas pulsa baru-baru ini .
m#n
menghasilkan faktorn
, dimulai denganm
.m>n
, kita berhenti, menyimpulkan bahwa kita sudah menemukan semua faktor.x=gcd(m^n)n
adalah faktor terbesar yangn
memiliki faktor utamam
. Perhatikan bahwa karena yang lebih kecilm
diuji terlebih dahulu, ini akan menjadi1
kecualim
prima.x
dalam daftar hasil jika bukan 1, dan kemudian muncul kembali dengan yang berikutnyam
, membaginyan
denganx
. Perhatikan bahwax
dandiv n x
tidak dapat memiliki faktor umum.(2#)
mengambil nomor dan mulai mencari faktor dari2
.sumber
MATL , 7 byte
Cobalah online! Atau verifikasi semua kasus uji .
Penjelasan
Pertimbangkan input
80
sebagai contoh.EDIT (9 Juni 2017):
YF
dengan dua output telah dimodifikasi dalam rilis 20.1.0 : bilangan prima non-faktor dan eksponen (nol) dilewati. Ini tidak memengaruhi kode di atas, yang berfungsi tanpa memerlukan perubahan apa pun (tetapi1X-
dapat dihapus).sumber
1X-
mubazir dalam rilis baru ... juga, yang tampak seperti perbedaan set daripada persimpangan untuk saya.Jelly , 5 byte
Test suite di Coba online!
Bagaimana?
sumber
ÆfŒgZP
. Ia memiliki jumlah token yang sama tetapi terlalu banyak atom dua-byte;)1
input1
yang tidak diizinkan (efek menjalankan produk kosong).Alice , 10 byte
Cobalah online!
Sayangnya, ini menggunakan poin kode sebagai integer I / O lagi . Kasing uji dalam tautan TIO adalah input 191808 yang terurai menjadi 64 , 81 dan 37 . Perhatikan bahwa solusi ini mencetak kekuatan prima secara berurutan dari yang terbesar ke yang terkecil, jadi kami mendapatkan hasilnya
%Q@
.Untuk kenyamanan, berikut adalah solusi 16-byte dengan desimal I / O yang menggunakan algoritma inti yang sama:
Cobalah online!
Penjelasan
Seperti jawaban lainnya, ini menguraikan input menjadi kekuatan utama.
sumber
Mathematica 46 byte
Cobalah online!
sumber
{}; {2}; {3}; {2}; {5}; {2,3}; {7}; {2}; {3}; {2,5}; {11}; {2,3}; {13}; ...
tetapi seharusnya di-output{}; {2}; {3}; {4}; {5}; {2,3}; {7}; {8}; {9}; {2,5}; {11}; {4,3}; {13}; ...
.#
lebih dari#
itu sendiri, Anda dapat menyimpan banyak byte dengan menggunakanApply
(@@@
) alih-alihMap
(/@
):#^#2&@@@If...
PHP, 62 Bytes
mencetak array asosiatif dengan prime sebagai kunci dan seberapa sering prime digunakan sebagai nilai dan tidak ada input
1
Cobalah online!
Output untuk
60
PHP, 82 Bytes
Cobalah online!
tidak mencetak apa pun untuk input
1
jika Anda menginginkan array kosong dan array yang diurutkan akan sedikit lebih lamasumber
Sebenarnya , 6 byte
Cobalah online!
Penjelasan:
sumber
Pari / GP , 28 byte
Cobalah online!
sumber
miniML , 47 byte
Tantangan yang melibatkan faktorisasi utama sangat terwakili di sini, jadi kita semua sedih terpaksa memiliki faktorisasi di perpustakaan standar.
Perhatikan bahwa 'mini' dalam miniml mengacu pada ukuran set fitur, bukan ukuran kode sumber yang tertulis di dalamnya.
sumber
Ruby, 61 byte
Saya sangat kecewa setelah mencari solusi 6-7 byte -))
sumber
Mathematica, 24 byte
Sayang sekali
@@@*
bukan hal. Juga, saya ingin/@*
,@@*
dan pada kenyataannya, perubahan@@@
untuk/@@
,//@
untuk@@@
atau apa pun dan menambahkan keluarga tak terbatas//@
,///@
...sumber