高尔夫代码:乌兰螺旋 [英] Code Golf: Ulam Spiral

查看:105
本文介绍了高尔夫代码:乌兰螺旋的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

按字符数计算的最短代码,用于输出乌拉姆螺旋线,其螺旋尺寸由用户输入指定.

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆