Dari semua tahun saya membuat tantangan ini, 2017 adalah tahun pertama yang menjadi bilangan prima. Jadi pertanyaannya adalah tentang bilangan prima dan propertinya.
Tugas Anda adalah untuk menghasilkan program atau fungsi yang akan mengambil bilangan bulat positif besar yang sewenang-wenang sebagai input, dan menghasilkan atau mengembalikan apakah jumlahnya friable 2.017 - artinya, apakah faktor utama terbesar dalam jumlah itu adalah 2.017 atau kurang.
Beberapa contoh input dan outputnya:
1 (has no prime factors)
true
2 (= 2)
true
80 (= 2 x 2 x 2 x 2 x 5)
true
2017 (= 2017)
true
2019 (= 3 x 673)
true
2027 (= 2027)
false
11111 (= 41 x 271)
true
45183 (= 3 x 15061)
false
102349 (= 13 x 7873)
false
999999 (= 3 x 3 x 3 x 7 x 11 x 13 x 37)
true
1234567 (= 127 x 9721)
false
4068289 (= 2017 x 2017)
true
Program Anda tidak harus benar-benar menampilkan true
dan false
- nilai-nilai yang benar atau salah, dan pada kenyataannya setiap dua keluaran berbeda yang konsisten di seluruh kasus benar dan salah baik-baik saja.
Namun, Anda tidak boleh menggunakan bilangan prima dalam kode sumber Anda. Primes datang dalam dua jenis:
Karakter, atau urutan karakter, yang mewakili literal bilangan prima.
Karakter
2
,3
,5
, dan7
adalah ilegal dalam bahasa mana jumlahnya token valid.Angka
141
itu ilegal karena mengandung41
, meskipun1
dan4
sebaliknya valid.Karakter
B
danD
(ataub
dand
) ilegal dalam bahasa di mana mereka biasanya digunakan sebagai 11 dan 13, seperti CJam atau Befunge.
Karakter yang memiliki nilai Unicode bernilai prima, atau berisi byte bernilai prima dalam penyandiannya.
Karakter
%)+/5;=CGIOSYaegkmq
tersebut ilegal di ASCII, serta karakter carriage return.Karakter
ó
ini ilegal di UTF-8 karena penyandiannya ada0xb3
di dalamnya. Namun, dalam ISO-8859-1, penyandiannya sederhana0xf3
, yang komposit dan karenanya oke.
Kode terpendek untuk melakukan hal di atas dalam bahasa apa pun menang.
=
aturan bahasa standar yang paling ...