ที่เราเคยมีคู่ของความท้าทายเกี่ยวกับเกลียวลาม แต่นั่นยังไม่เพียงพอ
ในการท้าทายนี้เราจะวางแผนเกลียวสามเหลี่ยมอูลาม (ตรงข้ามกับเกลียวอูลาอัมสี่เหลี่ยมทั่วไป) นี่คือภาพร่างของเกลียวที่มีลักษณะ
ดังที่เราทราบเกลียว Ulamจัดเรียงหมายเลขธรรมชาติทั้งหมดในเกลียวภายนอกและทำเครื่องหมายเฉพาะหมายเลขที่ดีที่สุดเท่านั้น ดังนั้นในภาพร่างด้านบนจะแสดงเฉพาะตัวเลขที่ปรากฏเป็นสีดำ (จำนวนเฉพาะ)
ความท้าทาย
ยอมรับตัวเลขNเป็นอินพุตและแสดงเกลียว Ulam แบบสามเหลี่ยมขึ้นไปยังหมายเลขนั้น
- อินพุตสามารถเป็น stdin หรือฟังก์ชันอาร์กิวเมนต์
- เกลียวควรหมุนไปในทิศทางบวก (นั่นคือทวนเข็มนาฬิกา) ดังที่แสดงในภาพด้านบน
- การหมุนรอบ 120 องศาของรูปด้านบนจะถูกต้องและการเลี้ยวอาจแตกต่างกันไปสำหรับอินพุตที่แตกต่างกัน แต่ด้านต่ำสุดของสามเหลี่ยมที่บอกเป็นนัยควรเป็นแนวนอนเนื่องจากมีการเลี้ยวที่อนุญาตเท่านั้นคือ (ทวีคูณของ) 120 องศา
- รหัสควรทำงานตามหลักวิชา (ให้เวลาและหน่วยความจำเพียงพอ) สำหรับNใด ๆถึงสิ่งที่ได้รับอนุญาตจากการคำนวณระดับกลางใด ๆ ที่คุณทำกับชนิดข้อมูลเริ่มต้นของคุณ
double
ก็เพียงพอแล้ว ไม่จำเป็นสำหรับประเภทจำนวนเต็มขนาดใหญ่ - อนุญาตให้ใช้ฟังก์ชันในตัวทั้งหมด
- ฉันจะไม่ยอมรับคำตอบของตัวเอง (ไม่ใช่ว่าฉันคิดว่ามันจะสั้นที่สุดแล้ว ... )
รูปแบบเอาต์พุต
เลือกข้อใดข้อหนึ่งต่อไปนี้
แสดงกราฟที่มีเครื่องหมาย (จุด, วงกลม, กากบาท, สิ่งที่คุณต้องการ) ที่จำนวนเฉพาะและไม่มีอะไรที่ตัวเลขที่ไม่สำคัญ สเกลไม่จำเป็นต้องเหมือนกันสำหรับสองแกน นั่นคือรูปสามเหลี่ยมโดยนัยไม่จำเป็นต้องมีด้านเท่ากันหมด แกนเส้นกริดและป้ายกำกับแกนเป็นอุปกรณ์เสริม จำเป็นต้องมีเครื่องหมายที่จำนวนเฉพาะ
ตัวอย่างเอาต์พุตสำหรับN = 12 จะเป็นดังนี้ (เปรียบเทียบกับร่างด้านบน) พล็อตที่สองเป็นตัวอย่างที่น่าสนใจยิ่งขึ้นซึ่งสอดคล้องกับN = 10,000
- สร้างไฟล์รูปภาพด้วยข้างต้นในรูปแบบภาพที่รู้จักกันดี (เช่น png, tiff, bmp)
แสดงรูปเกลียวเป็นศิลปะ ASCIIโดยใช้อักขระเดี่ยวที่คุณเลือกสำหรับช่วงเวลาและพื้นที่ว่างสำหรับช่วงเวลาที่ไม่ว่างพร้อมพื้นที่ว่างเพื่อแยกตำแหน่งตัวเลขในแถวเดียวกัน อนุญาตการนำหน้าหรือเว้นวรรคหรือขึ้นบรรทัดใหม่ ตัวอย่างเช่นกรณีN = 12 ที่ใช้
o
เป็นอักขระจะเป็นo · · · o · o · · · o · o
โดยที่แน่นอนจะมีเฉพาะ
o
เครื่องหมายที่แสดงถึงช่วงเวลาเท่านั้น·
ที่ไม่ใช่เฉพาะ-จะแสดงที่นี่สำหรับการอ้างอิงเท่านั้น
เกณฑ์การชนะ
รางวัลที่แท้จริงคือการเห็นรูปแบบที่น่าทึ่งของคุณเองกอล์ฟโค๊ดรหัสที่สั้นที่สุดชนะ