Bu zorluk, bu fantastik animasyon şemasından esinlenmiştir (sohbete göndermedeki kusur sayesinde).
Bir giriş verildiğinde n
, tüm ana faktörlerini belirtildiği gibi iç içe çokgenler olarak çizin.
Örneğin, bu sayı göz önüne alındığında, 357 = 17x7x3
bir üçgende 3 nokta, bir heptagondaki bu üçgenlerin 7 versiyonu ve bu hepgononların 17 versiyonunu 17 gonda düzenlersiniz. Kısacası, iç içe çokgenler dıştaki en büyük ana faktörden içteki en küçük düzeye doğru gider. Çünkü 357
cevabınız biraz buna benzemeli (renkli ya da renkli):
Her asalın her çokgeni >= 3
diyagramın etrafında döndürülmemelidir.
Tek istisna 2
özellikle garip güçler için en önemli olanı 2
. 376 = 47x2x2x2
Aşağıdaki örnekte görebileceğiniz gibi, 8
s döner ve 2
s satırları tek değildir , ancak 4
s kare için dikey yığınlardır . 2
Kareler halinde düzenlenmiş güçlerinin bile bu şekilde döndürülmeleri gerekmez.
Aslında, 448 = 7x2x2x2x2x2x2
bir 64
s heptagonuna benzeyen bir şemaya sahiptir ve 64
bir kare kareler karesi şeklinde düzenlenmiştir, fakat dönüşsüzdür.
İki örnek daha 440 = 11x5x2x2x2
ve 432 = 3x3x3x2x2x2x2
. 440
Tuhaf bir güçle 2'nin döndüğünü 8
, ancak 432
eşit güçle 2
s'ini döndürmediğini görüyoruz 16
.
Sonunda, 10 = 5x2
Python ve turtle
modülü ile alay ettiğim renk olmadan , minimal bir örnek .
Meydan okuma
- Bir giriş
n
verildiğinde1 <= n <= 10000
, iç içe geçmiş faktör çokgenlerinin görüntüsünü çıkar. - Kurallar:
- Görüntü, dışta (en büyük asal çarpan) yanları olan bir çokgenden, içte en küçük asal çarpana kadar iç içe çokgen noktalardan oluşur.
- Faktör 2 için, 2'nin güçlerinin bir çizgi, sonra bir kare, sonra bir kare çizgi gibi istiflenmesi gerekir. 2 güçleri bile döndürülmemelidir. 2'lik tek güçler, kendi poligonlarının etrafında döndürülmeli ve dönmeden önce dikey olarak istiflenmelidir.
- İstediğiniz gibi görüntüyü yönlendirebilirsiniz (tercih etsem de), ancak iç içe geçmiş her çokgen, 2'nin tek güçleri hariç, diğer çokgenlerle aynı yöne bakmalıdır.
- Görüntü boyutu ve nokta boyutu için iki seçeneğiniz vardır:
- Görüntü boyutu statiktir ve nokta boyutu
n
arttıkça (animasyondaki gibi) azalır . - Nokta boyutu statiktir ve resim boyutu arttıkça büyür
n
.
- Görüntü boyutu statiktir ve nokta boyutu
- İlk üç poligon katmanı, komşu poligonlardan (yani
n=10000
dokunmaz ) ayırt edilebilir olmalıdır, ancak görüntülerin ve etrafındaki görüntülerin büyüklüğü göz önüne alındığında , katlar dokunmaya başladıysa sorun olmaz. Yapmasalardı tercih ederdim, ancak Stack Exchange'e yüklenebilecek bir görüntüye uyması kaçınılmaz olabilir. - Renk isteğe bağlıdır.
- Noktaların şekli size kalmış. Kareler diliniz için daha iyiyse, bunları kullanın.
- Bonus yok, ama birisinin orijinal yazıdaki gibi diyagramları canlandırıp renklendirdiğini görmek istiyorum.
Conor O'Brien, EasterlyIrk, Martin Ender, Kritixi Lithos, Mego, DJ McMayhem ve El'endia Starman'a bu soruyu yazmadaki yardımları için teşekkürler.
Bu kod golf, yani en kısa kod kazanır. İyi şanslar ve iyi golf!
n = n //= i
gerekiyordun//= i
?