language-agnostic - Code Golf : Happy Primes!

标签 language-agnostic code-golf rosetta-stone

今天是周日,是时候打一场 Code Golf 了!

挑战

根据字符数编写最短的源代码,以确定输入数字是“快乐素数”、“悲伤素数”、“快乐非素数”还是“悲伤非素数”。

输入

输入应该是来自命令行参数或标准输入的整数。不要担心处理大数字,但如果可以/想要的话就这样做。对于小于 1 的输入值,行为将是未定义的,但 1 具有明确的结果。

输出

输出应打印数字类型:“happy prime”、“sad prime”、“happy non-prime”或“sad non-prime”。尾随换行符是可选的。

示例

$ happyprime 139
happy prime
$ happyprime 2
sad prime
$ happyprime 440
happy non-prime
$ happyprime 78
sad non-prime

定义

以防万一您的大脑需要恢复一下。

快乐号码

来自维基百科,

A happy number is defined by the following process. Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers, while those that do not end in 1 are unhappy numbers (or sad numbers).

例如,

  • 139
  • 1^2 + 3^2 + 9^2 = 91
  • 9^2 + 1^2 = 82
  • 8^2 + 2^2 = 68
  • 6^2 + 8^2 = 100
  • 1^2 + 0^2 + 0^2 = 1

质数

一个prime number是一个大于 1 的整数,并且恰好有两个约数:1 和它本身。

快乐总理

因此,快乐素数是既快乐又素数的数字。

答案选择

显然,答案将是按字符数计算的最短源代码,在我测试的所有情况下输出指定的结果。一旦下一个(社区决定的) Code Golf 挑战出现,我将标记答案,这样我们就可以将所有精力集中在该挑战上。 :)

决定

嗯,看起来城里有一个新的 Code Golf ,距离这个问题发布已经大约一周了,所以我将最短的源代码标记为答案(gnibbler的64个字符Golfscript解决方案)。也就是说,我很喜欢 99 这个角色 Mathematica贝利撒留和神秘的 107 字符的解决方案 dc Nabb 的解决方案。

对于所有其他人,干得好!我的计算机上从未有过如此多的编程语言环境。我希望每个人都为自己喜欢的语言学到了一些新的肮脏技巧。

重用

我重新发布了本次竞赛生成的一些代码,作为我编写的脚本的示例,该脚本是为了根据 auto-grading 的引用实现测试各种程序。 。该目录中的自述文件解释了源代码的来源,并声明所有代码均在 CC BY-SA 2.5 许可证下重复使用(如 SO 的 legal section 中所述)。每个目录都标有您提交时的显示名称。

如果您对以这种方式重新使用代码或归属有疑问,请告诉我,我将更正错误。

最佳答案

dc - 98 个字符

$ cat happyprimes
[happy][sad]?dsI[[I~d*rd0<H+]dsHxd4<h]dshx[r]sr1=rP[ ][ non-]_1lI[1-d2>rdlIr%0<p]dspx-2=rP[prime]p
$ echo 1  |dc happyprimes
happy non-prime
$ echo 139|dc happyprimes
happy prime
$ echo 2  |dc happyprimes
sad prime
$ echo 440|dc happyprimes
happy non-prime
$ echo 78 |dc happyprimes
sad non-prime

关于language-agnostic - Code Golf : Happy Primes!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3543811/

相关文章:

language-agnostic - 在OOP上下文中正确登录

language-agnostic - Code Golf : The wave

language-agnostic - Code Golf:为我打造弧线

language-agnostic - 文件 Fix-it codegolf (GCJ 2010 1B-A)

language-agnostic - Code Golf 新年版 - 整数到罗马数字

javascript - 替代 Javascript 中 if block 中的多个 or 语句

algorithm - 跳过列表与二叉搜索树

language-agnostic - 将字符串转换为摩尔斯电码

language-agnostic - Code-Golf:友好数字缩写

language-agnostic - 用于在不同屏幕分辨率下进行测试的辅助工具