이 도전은 이 환상적인 애니메이션 다이어그램에서 영감을 얻었습니다 (채팅에 게시 해 주셔서 감사합니다).
입력 값이 n
지정되면 지정된대로 모든 주요 요소를 내포 된 다각형 다각형으로 그립니다.
예를 들어 숫자가 주어지면 357 = 17x7x3
삼각형에 3 개의 점, 7 각형의 삼각형, 17 각형의 칠각형 17 개가 정렬됩니다. 즉, 중첩 다각형은 외부에서 가장 큰 주요 요소에서 내부에서 가장 작은 요소로 이동합니다. 의 경우 357
답변은 다음과 같이 약간 색깔이 있어야합니다 (색상 유무).
모든 프라임의 모든 다각형을 >= 3
다이어그램 주위에서 회전해서는 안됩니다.
유일한 예외는 2
특히 홀수의 거듭 제곱에 대한 소수 입니다 2
. 376 = 47x2x2x2
아래 예에서 볼 수 있듯이 8
s는 회전하며 s의 한 줄은 2
아니지만 s의 수직 스택입니다 4
. 2
정사각형으로 배열 된의 힘조차도 이런 식으로 회전 할 필요는 없습니다.
실제로 448 = 7x2x2x2x2x2x2
보이는 칠각형의 좋아하는 도면을 갖는다 64
들 및 64
하지만 회전하지 않고, 사각형의 사각형의 정사각형으로 배열된다.
두 가지 더 예는 440 = 11x5x2x2x2
과 432 = 3x3x3x2x2x2x2
. 우리 440
는 2의 홀수 전력으로 8
s 를 회전 했지만 432
균등 한 힘으로 s를 2
회전시키지 않습니다 16
.
그리고 마지막으로, 10 = 5x2
파이썬과 그 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
?