Diberikan polinomial, tentukan apakah itu prima.
Polinomial adalah ax^n + bx^(n-1) + ... + dx^3 + ex^2 + fx + g
, di mana setiap istilah adalah bilangan konstan (koefisien) dikalikan dengan kekuatan bilangan bulat tidak negatif dari x
. Kekuatan tertinggi dengan koefisien bukan nol disebut derajat. Untuk tantangan ini, kami hanya mempertimbangkan polinomial paling sedikit derajat 1. Artinya, setiap polinomial mengandung beberapa x
. Selain itu, kami hanya menggunakan polinomial dengan koefisien bilangan bulat.
Polinomial dapat dikalikan. Misalnya, (x+3)(2x^2-2x+3)
sama dengan 2x^3+4x^2-3x+9
. Dengan demikian, 2x^3+4x^2-3x+9
dapat difaktorkan menjadi x+3
dan 2x^2-2x+3
, sehingga bersifat komposit.
Polinomial lain tidak dapat difaktorkan. Misalnya, 2x^2-2x+3
bukan produk dari dua polinomial (mengabaikan polinomial konstan atau yang memiliki koefisien non-integer). Karenanya, ini prima (juga dikenal sebagai irreducible).
Aturan
- Input dan output dapat melalui cara standar apa pun.
- Input dapat berupa string seperti
2x^2-2x+3
, daftar koefisien seperti{2,-2,3}
, atau sarana serupa lainnya. - Output adalah nilai kebenaran jika itu prima, atau nilai falsey jika itu komposit. Anda harus menghasilkan nilai kebenaran yang sama untuk semua bilangan prima, dan nilai falsey yang sama untuk semua polinomial komposit.
- Input akan setidaknya dari derajat 1 dan paling banyak derajat 10.
- Anda tidak boleh menggunakan alat bawaan untuk faktorisasi (bilangan bulat atau ekspresi) atau pemecahan persamaan.
Contohnya
Benar - prima
x+3
-2x
x^2+x+1
x^3-3x-1
-2x^6-3x^4+2
3x^9-8x^8-3x^7+2x^3-10
Salah - komposit
x^2
x^2+2x+1
x^4+2x^3+3x^2+2x+1
-3x^7+5x^6-2x
x^9-8x^8+7x^7+19x^6-10x^5-35x^4-14x^3+36x^2+16x-12
Jawaban:
Mathematica, 224 byte
Penjelasan :
Metode Kronecker digunakan di sini. Metode ini menghasilkan polinomial tingkat rendah tertentu dan menguji apakah ada faktor polinomial asli.
Kasus uji :
Dibutuhkan 14-an di laptop saya untuk menyimpulkan bahwa
3x^9-8x^8-3x^7+2x^3-10
itu prima.sumber
PARI / GP, 16 byte, murah sekali
Untuk beberapa alasan ini tidak dianulir (mencatat bahwa perintah tidak memperhitungkan faktor atau persamaan):
Kasus cobaan
mengembalikan
1
(true). Contoh lain bekerja dengan cara yang sama.Tetapi untuk menunjukkan bahwa ini bisa dipecahkan dengan cara yang sulit, inilah solusi lengkapnya.
Lebih murah, tapi sloooooooooow
Tidak ada gunanya bermain golf ini.
Sunting: Para komentator telah menunjukkan bahwa metode pertama mungkin dilarang oleh selera yang baik, semangat aturan, Konvensi Jenewa, aturan celah standar, dll. Saya tidak setuju, tetapi dalam hal apa pun saya memposting versi kedua bersama dengan yang pertama dan tentu saja tampaknya dapat diterima.
sumber
x^4+1
(yang terkenal reducible mod setiap prime) dapat direduksi dalam 86 milidetik. Jika tidak ada yang lain dapat beradaptasi dan golf versi ini.