Jelly , 13 ตัวละครที่มีความหมายภาษาโพสต์วันที่ท้าทาย
R µ ọḊ *@Ḋ ċ >2 µ Ðf
ลองออนไลน์!
ช่องว่างทั้งหมดที่นี่ไม่มีนัยสำคัญ ฉันใช้มันเพื่อแสดงโครงสร้างของคำตอบตามที่ถาม
นี่คือวิธีการทำงาน:
R µ ọḊ *@Ḋ ċ >2 µ Ðf
R Ðf Find all numbers n from 1 to the input, such that:
µ µ (grouping marks, like {} in C)
Ḋ Ḋ Take the range from 2 to n
ọ Find the number of times each divides n
*@ Raise the range from 2 to n to these powers
ċ Count the number of times n appears
>2 and the result must be greater than 2
ตัวอย่างเช่นเมื่อทดสอบ n = 256 เราจะตรวจสอบจำนวนครั้งที่แต่ละตัวเลขจาก 2 ถึง 256 หารเป็น 256 ตัวเลขเท่านั้นที่หารมากกว่าหนึ่งครั้งคือ 2 (ซึ่งแบ่ง 8 ครั้ง), 4 (ซึ่งหาร 4 ครั้ง), 8 (ซึ่งหารสองครั้ง) และ 16 (ซึ่งหารสองครั้ง) ดังนั้นเมื่อเราเพิ่มจำนวนหน่วยงานเป็นอำนาจที่กำหนดไว้ที่นั่นเราจะได้รับ:
2⁸, 3, 4⁴, 5, 6, 7, 8², 9, 10, 11, 12, 13, 14, 15, 16², 17, ..., 255, 256
สิ่งนี้สร้างค่าดั้งเดิม 256 ครั้งจำนวนเท่ากับวิธีที่ 256 เป็นพลังที่สมบูรณ์แบบบวกหนึ่ง (องค์ประกอบสุดท้ายสร้าง 256 เพราะ 256 = 256¹) ดังนั้นถ้าเราเห็น 256 มากกว่าสองเท่าในอาเรย์ (และเราทำในกรณีนี้8²เป็น 64 แต่องค์ประกอบที่น่าสนใจอื่น ๆ ทั้งหมดผลิต 256) มันต้องเป็นพลังงานที่สมบูรณ์แบบ