Dalam kalender Thailand tahun 2017 sama dengan 2560. Kalender Thailand selalu 543 tahun lebih awal dari kalender Gregorian.
Coder yang taat akan mencatat bahwa 2560 sama dengan 2^9 * 5
, dengan kata lain memiliki 10 faktor prima. Ini tidak akan terjadi lagi selama 896 tahun lagi! Kami memanggil satu tahun ulet jika memiliki tepat sepuluh faktor utama.
Tulis program yang menampilkan nilai kebenaran jika tahun saat ini menggunakan kalender Thailand, berdasarkan jam sistem, ulet, dan nilai palsu sebaliknya.
Kasus uji:
- Jika program ini dijalankan selama 2017,
true
- Jika program ini dijalankan selama tahun 2018 hingga 2912,
false
- Jika program dijalankan selama 2913,
true
(2913 + 543 =2^7 * 3^3
)
Jawaban:
Bash + coreutils, 35 byte
Output adalah string yang tidak kosong (benar) atau string kosong (palsu).
Cobalah online!
Versi alternatif: 37 byte.
Tidak seperti golf, tapi aku suka yang ini.
Cobalah online!
Bagaimana itu bekerja
$[
Tanggal ekspansi aritmatika +% Y+543]
dijalankandate +%Y
untuk mendapatkan tahun saat ini (penuh) dan menambah 543 tahun.Factor mengambil penjumlahan sebagai argumen dan mencetaknya dengan faktorisasi utama: pertama angka yang diperhitungkan, kemudian daftar faktor prima individu.
Akhirnya, awk memfilter input, hanya mencetak garis dengan tepat 11 bidang (angka plus 10 faktor utama).
sumber
05AB1E , 10 byte
Cobalah online! atau sebagai Test suite
Penjelasan
sumber
CJam , 13 byte
Cobalah online!
Penjelasan
sumber
Mathematica,
3731 byte5 byte disimpan karena lanlock4 .
Fungsi anonim. Tidak mengambil input dan mengembalikan
True
atauFalse
sebagai output.sumber
Now
tersirat. Anda bisa menggunakannyaDateValue@"Year"
.&
di akhir? Juga,Date[][[1]]
beberapa byte lebih pendek dariDateValue@"Year"
(jika Anda tidak keberatan ituDate
sudah usang).#&@@Date[]
di tempatDate[][[1]]
. Juga, saya pikir "Lingkungan Mathematica + REPL" adalah bahasa pemrograman yang valid di sini, di mana Anda tidak perlu mengakhiri&
.Pyth, 11 byte
Penerjemah online tersedia di sini.
Penjelasan
sumber
Japt ,
18 1413 byteDisimpan 4 byte berkat produk ETH. Disimpan 1 byte berkat obarakon.
Cobalah online!
sumber
A¥º543+Ki¹k l
atau543+Ki¹k l ¥A
¹
digunakan, tidak akan)
melakukan hal yang sama?)
.Python 2 ,
9289 byte-3 byte terima kasih kepada Jonathan Allan
Cobalah online!
Iterate hingga tahun ini, mengekstraksi (dan couting) faktor utama.
Garis exec sama dengan:
sumber
c=i=1
;c-=1
;print-9==c
.Oktaf , 31 byte
Cobalah online!
Dua trik yang digunakan di sini:
clock()(1)
untuk mengindeks langsung ke output dariclock
(clock(1)
tidak berfungsi)nnz
alih-alihnumel
, karena semua entri dijamin bukan nol.Versi alternatif, jumlah byte yang sama
Versi ini hanya dapat digunakan selama bertahun-tahun
30
, tetapijelasmengabaikan perjalanan waktu ini termasuk semua tahun di mana program dapat dieksekusi. Ia bekerja di Matlab juga.sumber
PHP,
1116866secara langsung menghitung jumlah faktor utama.
Gagasan lama:
11190Ini tidak menggunakan built-in factortoring bawaan tetapi pada dasarnya saringan prime penghitungan untuk mendapatkan jumlah faktor prima dari angka <10000. Ini memetakan ke tahun 4 digit yang disediakan PHP menggunakan
date('Y')
:sumber
Y
tidak perlu kutip dengan-nr
.$a[$i*$j]=($a[$i]?:1)+($a[$j]?:1)
menghemat 13 byte.$j=++$i<1e4
menghemat satu. Dan tidak ada tanda kutip untukY
dua lagi.MATL , 14 byte
Cobalah online!
sumber
Batch, 123 byte
Anda bisa memalsukan skrip dengan menimpa
date
variabel secara manual sebelum menjalankannya.sumber
J , 18 byte
Badan program:
Cobalah online!
10=
sepuluh sama dengan#
penghitunganq:
faktor utama dari543+
nomor ini ditambahkan ke{.
kepala (item pertama, yaitu tahun) dari6!:0''
tanggal (seperti YMD hms)sumber
JavaScript (ES6),
7975 bytePort of Batch saya menjawab. Lulus di tahun kalender Thailand jika Anda ingin melakukan tes tertentu. Sunting: Disimpan 4 byte berkat @dandavis.
sumber
new Date().getYear()+2443
false
? shortner:+Date().slice(11,15)+543
dany?
bukannyay>1
y?
tidak ada gunanya,y
tidak pernah nol.