To wyzwanie jest inspirowane fantastycznym animowanym diagramem (dzięki flawr za opublikowanie go na czacie).
Biorąc pod uwagę dane wejściowe n, narysuj wszystkie jego czynniki pierwsze jako zagnieżdżone wielokąty kropek, jak określono.
Na przykład, biorąc pod uwagę liczbę 357 = 17x7x3, układasz 3 kropki w trójkącie, 7 wersji tych trójkątów w heptagonie i 17 wersji tych heptagonów w 17-gon. Krótko mówiąc, zagnieżdżone wielokąty przechodzą od największego czynnika pierwotnego na zewnątrz do najmniejszego w środku. Dla 357Twoja odpowiedź powinna wyglądać trochę tak (z lub bez koloru):
Każdy wielokąt każdej liczby pierwszej >= 3nie powinien być obracany wokół diagramu.
Jedynym wyjątkiem jest liczba pierwsza 2, szczególnie dla nieparzystych mocy 2. Jak widać na poniższym przykładzie 376 = 47x2x2x2, 8s obracają się i nie są pojedynczymi liniami 2s, ale pionowymi stosami dla 4s w kwadracie. Nawet moce 2ułożone w kwadraty nie muszą być obracane w ten sposób.
W rzeczywistości 448 = 7x2x2x2x2x2x2ma schemat, który wygląda jak heptagon 64s, i 64jest ułożony w kwadrat kwadratów kwadratów, ale bez obrotu.
Dwa kolejne przykłady to 440 = 11x5x2x2x2i 432 = 3x3x3x2x2x2x2. Widzimy, że 440przy nieparzystej sile 2 obrócił 8s, ale 432przy parzystej sile 2nie obraca 16s.
I na koniec, oto minimalny przykład, 10 = 5x2bez koloru, który wyśmiewałem za pomocą Pythona i jego turtlemodułu.
Wyzwanie
- Biorąc pod uwagę wejście, w
nktórym1 <= n <= 10000wyprowadza obraz jego zagnieżdżonych wielokątów czynnikowych. - Zasady są następujące:
- Obraz składa się z zagnieżdżonych wielokątów kropek, od wielokąta o bokach (największy czynnik pierwotny) na zewnątrz do najmniejszego czynnika pierwotnego wewnątrz.
- Dla współczynnika 2 potęgi 2 powinny się kumulować jako linia, następnie kwadraty, następnie linia kwadratów i tak dalej. Nawet potęgi 2 nie należy obracać. Dziwne moce 2 powinny być obracane wokół ich odpowiednich wielokątów i powinny być ułożone pionowo przed obrotem.
- Możesz ustawić obraz w dowolny sposób (chociaż wolę w górę), ale każdy zagnieżdżony wielokąt powinien być skierowany w tym samym kierunku, co każdy inny wielokąt, z wyjątkiem nieparzystych potęg 2.
- Masz dwie opcje rozmiaru obrazu i rozmiaru kropki:
- Rozmiar obrazu jest statyczny, a rozmiar kropki zmniejsza się wraz ze
nwzrostem (jak w animacji). - Rozmiar kropki jest statyczny, a rozmiar obrazu rośnie wraz ze
nwzrostem.
- Rozmiar obrazu jest statyczny, a rozmiar kropki zmniejsza się wraz ze
- Pierwsze trzy warstwy wielokątów powinny być odróżnialne od sąsiednich wielokątów (tj. Nie dotykają się), ale biorąc pod uwagę rozmiar obrazów w okolicach
n=10000, dobrze jest, jeśli warstwy po dotknięciu zaczną się dotykać. Wolałbym, gdyby tak nie było, ale dopasowanie obrazu, który można załadować do Stack Exchange, może być nieuniknione. - Kolor jest opcjonalny.
- Kształt kropek zależy od ciebie. Jeśli kwadraty są lepsze dla twojego języka, użyj ich.
- Brak bonusów, ale chciałbym zobaczyć, jak ktoś animuje i pokoloruje diagramy jak w oryginalnym poście.
Podziękowania dla Conora O'Briena, EasterlyIrk, Martina Endera, Kritixi Lithos, Mego, DJ McMayhem i El'endii Starman za pomoc w napisaniu tego pytania.
Ten kod golfowy, więc najkrótszy kod wygrywa. Powodzenia i dobrej gry w golfa!







n = n //= imiało byćn//= i?