Trong tất cả những năm tôi đã thực hiện thử thách này, 2017 là năm đầu tiên đó là một con số chính. Vì vậy, câu hỏi sẽ là về số nguyên tố và tính chất của chúng.
Nhiệm vụ của bạn là tạo ra một chương trình hoặc hàm sẽ lấy một số nguyên dương lớn tùy ý làm đầu vào, và đầu ra hoặc trả về cho dù số đó có phải là 2.017 hay không - nghĩa là, cho dù hệ số nguyên tố lớn nhất trong số đó là 2.017 hay ít hơn.
Một số ví dụ đầu vào và đầu ra của chúng:
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
Chương trình của bạn không phải xuất ra theo nghĩa đen true
và false
- bất kỳ giá trị trung thực hoặc giả nào, và trên thực tế, bất kỳ hai đầu ra khác nhau nào phù hợp giữa các trường hợp đúng và sai đều ổn.
Tuy nhiên, bạn không được sử dụng bất kỳ số nguyên tố nào trong mã nguồn của mình. Số nguyên tố có hai loại:
Các ký tự, hoặc chuỗi các ký tự, đại diện cho chữ số nguyên tố.
Các nhân vật
2
,3
,5
, và7
là bất hợp pháp trong ngôn ngữ mà con số này là thẻ hợp lệ.Số
141
này là bất hợp pháp vì nó chứa41
, mặc dù1
và4
có giá trị khác.Các ký tự
B
vàD
(hoặcb
vàd
) là bất hợp pháp trong các ngôn ngữ mà chúng thường được sử dụng là 11 và 13, chẳng hạn như CJam hoặc Befunge.
Các ký tự có giá trị Unicode có giá trị chính hoặc chứa các byte có giá trị chính trong mã hóa của chúng.
Các nhân vật
%)+/5;=CGIOSYaegkmq
là bất hợp pháp trong ASCII, cũng như nhân vật trở về xe ngựa.Ký tự
ó
này là bất hợp pháp trong UTF-8 vì mã hóa của nó có0xb3
trong đó. Tuy nhiên, trong ISO-8859-1, mã hóa của nó chỉ đơn giản0xf3
, là hỗn hợp và do đó ổn.
Mã ngắn nhất để làm điều trên trong bất kỳ ngôn ngữ nào sẽ thắng.
=
quy tắc trong hầu hết các ngôn ngữ tiêu chuẩn ...