这项挑战的灵感来自于这张奇妙的动画图表(感谢在聊天中张贴的虚假人物)。
给定输入n
,将其所有主要因子绘制为指定的点的嵌套多边形。
例如,给定数字357 = 17x7x3
,您在一个三角形中排列3个点,在一个七边形中排列这些三角形的7个版本,并在一个17边角中排列这些庚烷的17个版本。简而言之,嵌套的多边形从外部的最大素数到内部的最小素数。对于357
,您的答案应该看起来像这样(有色或无色):
每个素数的每个多边形>= 3
都不应围绕图旋转。
唯一的例外是质数2
,专门用于的奇数幂2
。在376 = 47x2x2x2
下面的示例中可以看到,8
s旋转并且不是2
s的单行,而是4
正方形中s的垂直堆栈。甚至2
以正方形排列的的幂也不需要以这种方式旋转。
实际上,它448 = 7x2x2x2x2x2x2
具有一个看起来像64
s 的七边形的图,并64
排列成正方形的正方形,但没有旋转。
还有两个示例是440 = 11x5x2x2x2
和432 = 3x3x3x2x2x2x2
。我们看到440
奇数幂为2时旋转了8
s,而432
偶数幂2
为时旋转了16
s。
最后,这是一个最小的示例,它10 = 5x2
没有我用Python及其turtle
模块模拟的颜色。
挑战
- 给定输入
n
where1 <= 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
?