高尔夫代码:乌兰螺旋 [英] Code Golf: Ulam Spiral
问题描述
按字符数计算的最短代码,用于输出乌拉姆螺旋线,其螺旋尺寸由用户输入指定.
The shortest code by character count to output Ulam's spiral with a spiral size given by user input.
乌兰姆螺旋式是映射质数的一种方法.螺旋线从位于中心的数字1开始(1不是质数),并在其周围生成螺旋线,将所有质数标记为字符'*
'.非质数将被打印为空格"".
Ulam's spiral is one method to map prime numbers. The spiral starts from the number 1 being in the center (1 is not a prime) and generating a spiral around it, marking all prime numbers as the character '*
'. A non prime will be printed as a space ''.
替代文本http://liranuna.com/junk/ulam.gif
Input:
2
Output:
* *
*
*
Input:
3
Output:
* *
* *
* **
*
*
Input:
5
Output:
* *
* *
* * *
* * *
* ** *
* *
* *
* *
* *
代码计数包括输入/输出(即完整程序).
Code count includes input/output (i.e full program).
推荐答案
Golfscript-92个字符
〜.(:S + ,: R {S \-:|; R {S-:$ |>'*'1/[| $.|] 2/@:d |〜)$&!; ^ =〜:$ ;: y.* 4 * $-y-)2d * $ y-* +:$,{)$ \%!} ,, 2 ==}%n}%
Golfscript - 92 Characters
~.(:S+,:R{S\-:|;R{S-:$|>' *'1/[|$.|]2/@:d|~)$<!^=~:$;:y.*4*$-y-)2d*$y-*+:$,{)$\%!},,2==}%n}%
97个字符
〜.(:S + ,: R {S \-:|; R {S-:$ |>'*'1/[| $.|] 2/@:d |〜)$&!; ^ =〜: $ ;: y.* 4 * $-y-)2d * $ y-* +.1 = 3 * +:$,2> {$ \%!},!=}%n}%
97 characters
~.(:S+,:R{S\-:|;R{S-:$|>' *'1/[|$.|]2/@:d|~)$<!^=~:$;:y.*4*$-y-)2d*$y-*+.1=3*+:$,2>{$\%!},!=}%n}%
99个字符
〜.(:S +,{S-}%:R {〜):|; R {:$ |>'*'1/[| $.|] 2/@:d |〜)$&!^ = 〜:$ ;: y.* 4 * $-y-)2d * $ y-* +.1 = 3 * +:$,2> {$ \%!},!=}%n}%
99 characters
~.(:S+,{S-}%:R{~):|;R{:$|>' *'1/[|$.|]2/@:d|~)$<!^=~:$;:y.*4*$-y-)2d*$y-*+.1=3*+:$,2>{$\%!},!=}%n}%
100个字符
〜:S.(+,{S(-}%:R {〜):|; R {:$ |>'*'1/[| $.|] 2/@:d |〜)$&!; ^ =〜:$ ;: y.* 4 * $-y-)2d * $ y-* +.1 = 3 * +:$,2> {$ \%!},!=}%n}%
100 characters
~:S.(+,{S(-}%:R{~):|;R{:$|>' *'1/[|$.|]2/@:d|~)$<!^=~:$;:y.*4*$-y-)2d*$y-*+.1=3*+:$,2>{$\%!},!=}%n}%
101个字符
〜:S.(+,{S(-}%:R {〜):v; R {:$ v>:d;'*'1/[v $ .v] 2/v〜)$&!; d ^ =〜:$ ;: y.* 4 * $-y-)2d * $ y-* +.1 = 3 * +:$,2> {$ \%!},!=}%n}%
101 characters
~:S.(+,{S(-}%:R{~):v;R{:$v>:d;' *'1/[v$.v]2/v~)$<!d^=~:$;:y.*4*$-y-)2d*$y-*+.1=3*+:$,2>{$\%!},!=}%n}%
这篇关于高尔夫代码:乌兰螺旋的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!