Thử thách này được lấy cảm hứng từ sơ đồ hoạt hình tuyệt vời này (cảm ơn flawr vì đã đăng nó trong trò chuyện).
Đưa ra một đầu vào n
, vẽ tất cả các thừa số nguyên tố của nó dưới dạng các đa giác lồng nhau, như được chỉ định.
Ví dụ, cho số 357 = 17x7x3
, bạn sắp xếp 3 dấu chấm trong một hình tam giác, 7 phiên bản của các hình tam giác đó trong một hình khối và 17 phiên bản của các hình tam giác đó trong 17 gon. Nói tóm lại, đa giác lồng nhau đi từ yếu tố nguyên tố lớn nhất ở bên ngoài đến nhỏ nhất ở bên trong. Đối với 357
, câu trả lời của bạn sẽ trông giống như thế này (có hoặc không có màu):
Mọi đa giác của mọi số nguyên tố >= 3
không nên được xoay quanh sơ đồ.
Ngoại lệ duy nhất là nguyên tố 2
, đặc biệt cho các quyền hạn lẻ 2
. Như bạn có thể thấy trong ví dụ 376 = 47x2x2x2
bên dưới, 8
s xoay và không phải là các dòng đơn lẻ 2
, mà là các ngăn dọc cho 4
s trong một hình vuông. Ngay cả sức mạnh của 2
, được sắp xếp trong các hình vuông, không cần phải được xoay theo cách này.
Trong thực tế, 448 = 7x2x2x2x2x2x2
có một sơ đồ trông giống như một hình khối của 64
s, và 64
được sắp xếp thành một hình vuông vuông, nhưng không có xoay.
Hai ví dụ nữa là 440 = 11x5x2x2x2
và 432 = 3x3x3x2x2x2x2
. Chúng ta thấy rằng 440
với công suất lẻ là 2, đã quay 8
s, nhưng 432
với công suất chẵn 2
không quay 16
s.
Và cuối cùng, đây là một ví dụ tối thiểu 10 = 5x2
, không có màu mà tôi chế nhạo với Python và turtle
mô-đun của nó .
Các thách thức
- Đưa ra một đầu vào
n
trong đó1 <= n <= 10000
, xuất ra một hình ảnh của đa giác nhân tố lồng nhau của nó. - Quy tắc là:
- Hình ảnh được tạo thành từ các đa giác lồng nhau, từ một đa giác có (yếu tố nguyên tố lớn nhất) ở bên ngoài đến yếu tố nguyên tố nhỏ nhất ở bên trong.
- Đối với nhân tố 2, các lũy thừa của 2 nên xếp thành một dòng, sau đó là một hình vuông, sau đó là một hình vuông, v.v. Ngay cả sức mạnh của 2 không nên được xoay. Sức mạnh lẻ của 2 nên được xoay quanh các đa giác tương ứng của chúng, và chúng nên được xếp chồng lên nhau theo chiều dọc trước khi quay.
- Bạn có thể định hướng hình ảnh theo cách bạn thích (mặc dù tôi thích hơn), nhưng mọi đa giác lồng nhau sẽ phải đối mặt với cùng hướng với bất kỳ đa giác nào khác, ngoại trừ duy nhất là lũy thừa 2.
- Bạn có hai tùy chọn cho kích thước hình ảnh và kích thước chấm:
- Kích thước hình ảnh là tĩnh và kích thước chấm giảm khi
n
tăng (như trong hình ảnh động). - Kích thước chấm là tĩnh và kích thước hình ảnh tăng lên khi
n
tăng.
- Kích thước hình ảnh là tĩnh và kích thước chấm giảm khi
- Ba lớp đa giác đầu tiên phải được phân biệt với các đa giác lân cận (nghĩa là không chạm vào), nhưng xem xét kích thước của hình ảnh tại và xung quanh
n=10000
, không sao nếu các lớp sau khi bắt đầu chạm vào. Tôi thích nó hơn nếu họ không, nhưng có thể không thể tránh khỏi việc phù hợp với hình ảnh có thể tải lên Stack Exchange. - Màu sắc là tùy chọn.
- Hình dạng của các chấm là tùy thuộc vào bạn. Nếu hình vuông tốt hơn cho ngôn ngữ của bạn, hãy sử dụng chúng.
- Không có tiền thưởng, nhưng tôi muốn thấy ai đó làm động và tô màu các sơ đồ như trong bài viết gốc.
Cảm ơn Conor O'Brien, EasterlyIrk, Martin Ender, Kritixi Lithos, Mego, DJ McMayhem và El'endia Starman vì sự giúp đỡ của họ trong việc viết câu hỏi này.
Mã golf này, vì vậy mã ngắn nhất sẽ thắng. Chúc may mắn và chơi golf tốt!
n = n //= i
cho làn//= i
?