ความท้าทายนี้ได้รับแรงบันดาลใจจากไดอะแกรมภาพเคลื่อนไหวที่ยอดเยี่ยม (ขอบคุณข้อบกพร่องสำหรับการโพสต์ในการแชท)
กำหนดอินพุตn
ให้วาดปัจจัยหลักทั้งหมดเป็นรูปหลายเหลี่ยมซ้อนกันตามที่ระบุ
ตัวอย่างเช่นเมื่อกำหนดตัวเลข357 = 17x7x3
คุณจะจัดเรียง 3 จุดในรูปสามเหลี่ยมรูปสามเหลี่ยม 7 รูปในรูป heptagon และรูป heptagons เหล่านั้น 17 รูปในรูปแบบ 17-gon ในระยะสั้นรูปหลายเหลี่ยมซ้อนกันไปจากปัจจัยสำคัญที่ใหญ่ที่สุดในด้านนอกเพื่อที่เล็กที่สุดในภายใน สำหรับ357
คำตอบของคุณควรมีลักษณะเช่นนี้เล็กน้อย (มีหรือไม่มีสี):
รูปหลายเหลี่ยมของนายกทุกคน>= 3
ไม่ควรหมุนไปรอบ ๆ แผนภาพ
ยกเว้นอย่างเดียวคือนายกเฉพาะสำหรับอำนาจคี่2
2
ดังที่คุณเห็นในตัวอย่าง376 = 47x2x2x2
ด้านล่างการ8
หมุนและไม่ใช่เส้นเดี่ยว2
แต่เป็นแนวตั้งแนวตั้งสำหรับ4
สี่เหลี่ยม แม้แต่พลังของที่2
เรียงกันเป็นสี่เหลี่ยมก็ไม่จำเป็นต้องหมุนด้วยวิธีนี้
ในความเป็นจริง448 = 7x2x2x2x2x2x2
มีไดอะแกรมที่ดูเหมือน heptagon ของ64
s และ64
ถูกจัดเรียงเป็นกำลังสองของกำลังสอง แต่ไม่มีการหมุน
ตัวอย่างที่สองมากขึ้นและ440 = 11x5x2x2x2
432 = 3x3x3x2x2x2x2
เราจะเห็นว่า440
มีอำนาจแปลกของ 2, มีที่หมุน8
s แต่432
มีอำนาจแม้2
ไม่หมุนของ16
s
และสุดท้ายนี่คือตัวอย่างเล็กน้อย10 = 5x2
โดยไม่มีสีที่ฉันล้อเลียนกับ Python และturtle
โมดูลของมัน
ความท้าทาย
- รับอินพุต
n
ที่ไหน1 <= n <= 10000
ส่งออกภาพของรูปหลายเหลี่ยมปัจจัยซ้อนกัน - กฎคือ:
- รูปภาพประกอบด้วยรูปหลายเหลี่ยมซ้อนกันหลายจุดจากรูปหลายเหลี่ยมที่มีด้าน (ปัจจัยหลักที่ใหญ่ที่สุด) ด้านนอกไปจนถึงปัจจัยหลักที่เล็กที่สุดที่อยู่ด้านใน
- สำหรับปัจจัย 2 พลังของ 2 ควรสแต็กเป็นเส้นจากนั้นเป็นสแควร์สแล้วก็สแควร์สแควร์และอื่น ๆ แม้แต่กำลังของ 2 ไม่ควรหมุน พลังแปลก ๆ ของ 2 ควรหมุนรอบรูปหลายเหลี่ยมตามลำดับและควรซ้อนในแนวตั้งก่อนหมุน
- คุณอาจปรับทิศทางภาพตามที่คุณต้องการ (แม้ว่าฉันจะชอบมากขึ้น) แต่รูปหลายเหลี่ยมที่ซ้อนกันทั้งหมดควรหันหน้าไปทางทิศทางเดียวกับรูปหลายเหลี่ยมอื่นที่มีข้อยกเว้นเพียงอย่างเดียวของพลังแปลก ๆ ที่ 2
- คุณมีสองตัวเลือกสำหรับขนาดภาพและขนาดจุด:
- ขนาดภาพคงที่และขนาดจุดลดลงตามการ
n
เพิ่มขึ้น (เช่นเดียวกับในภาพเคลื่อนไหว) - ขนาดจุดคงที่และขนาดภาพจะ
n
เพิ่มขึ้นตามการเพิ่มขึ้น
- ขนาดภาพคงที่และขนาดจุดลดลงตามการ
- รูปหลายเหลี่ยมสามชั้นแรกควรแยกความแตกต่างจากรูปหลายเหลี่ยมที่อยู่ใกล้เคียง (เช่นไม่ได้สัมผัส) แต่เมื่อพิจารณาขนาดของภาพทั้งในและรอบ ๆ
n=10000
ก็ไม่เป็นไรถ้าเลเยอร์หลังจากเริ่มสัมผัส ฉันต้องการมันหากไม่ได้ แต่อาจหลีกเลี่ยงไม่ได้ที่จะใส่ลงในภาพที่สามารถอัปโหลดไปยัง Stack Exchange ได้ - สีเป็นตัวเลือก
- รูปร่างของจุดขึ้นอยู่กับคุณ หากสี่เหลี่ยมนั้นดีกว่าสำหรับภาษาของคุณให้ใช้มัน
- ไม่มีโบนัส แต่ฉันต้องการเห็นคนที่มีชีวิตและระบายสีแผนภาพเหมือนในโพสต์ดั้งเดิม
ขอบคุณ Conor O'Brien, EasterlyIrk, Martin Ender, Kritixi Lithos, Mego, DJ McMayhem และ El'endia Starman สำหรับความช่วยเหลือในการเขียนคำถามนี้
รหัสนี้เล่นกอล์ฟรหัสที่สั้นที่สุดจึงชนะ ขอให้โชคดีและกอล์ฟที่ดี!
n = n //= i
ควรจะเป็นn//= i
?