จากหลายปีที่ผ่านมาฉันได้ทำเรื่องท้าทายนี้ปี 2017 เป็นปีแรกที่มีจำนวนมาก ดังนั้นคำถามจะเกี่ยวกับจำนวนเฉพาะและคุณสมบัติของพวกเขา
งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่จะใช้จำนวนเต็มบวกขนาดใหญ่โดยพลการเป็นอินพุตและเอาต์พุตหรือส่งคืนหรือไม่จำนวน2,017-friableนั่นคือไม่ว่าปัจจัยสำคัญที่ใหญ่ที่สุดในจำนวนนั้นคือ 2,017 หรือน้อยกว่า
ตัวอย่างอินพุตและเอาต์พุต:
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
โปรแกรมของคุณไม่จำเป็นต้องแสดงผลออกมาอย่างแท้จริงtrue
และfalse
- ค่าจริงหรือเท็จใด ๆ และในความเป็นจริงผลลัพธ์ที่แตกต่างกันสองค่าที่สอดคล้องกันระหว่างกรณีจริงและเท็จนั้นใช้ได้
อย่างไรก็ตามคุณไม่สามารถใช้ช่วงเวลาใดก็ได้ในซอร์สโค้ดของคุณ ช่วงเวลามาในสองประเภท:
อักขระหรือลำดับของอักขระที่แสดงตัวอักษรจำนวนเฉพาะ
ตัวละคร
2
,3
,5
และ7
ที่ผิดกฎหมายในภาษาที่ตัวเลขเป็นราชสกุลที่ถูกต้องหมายเลข
141
นั้นผิดกฎหมายเพราะมีอยู่41
แม้ว่าจะเป็น1
และ4
ถูกต้องก็ตามอักขระ
B
และD
(หรือb
และd
) ผิดกฎหมายในภาษาที่มักใช้เป็น 11 และ 13 เช่น CJam หรือ Befunge
ตัวละครที่มีค่า Unicode สำคัญหรือมีจำนวนไบต์ที่สำคัญในการเข้ารหัสของพวกเขา
อักขระ
%)+/5;=CGIOSYaegkmq
นั้นผิดกฎหมายใน ASCII เช่นเดียวกับอักขระปัดแคร่อักขระ
ó
ผิดกฎหมายใน UTF-8 เนื่องจากมีการเข้ารหัส0xb3
ในตัว อย่างไรก็ตามใน ISO-8859-1 การเข้ารหัสนั้นเรียบง่าย0xf3
ซึ่งเป็นแบบประกอบจึงไม่เป็นไร
รหัสที่สั้นที่สุดที่จะทำดังกล่าวในภาษาใด ๆ ที่ชนะ
=
กฎออกมาเป็นภาษามาตรฐานส่วนใหญ่ ...