编写一个程序,该程序将测试指定数字的素数,并将输出作为布尔值给出(True是素数)。您的主要测试可以(但不一定)对数字1有效。
要注意的是:您的程序本身必须求和一个质数。将每个字符(包括空格)转换为其Unicode / ASCII值(表)。然后,将所有这些数字相加,得出程序的总和。
例如,采用我在Python 3.3中编写的不太好的程序:
q=None
y=int(input())
for x in range(2,int(y**0.5)+1):
if y%x==0:
q=False
if not q:
q=True
print(q)
如果将所有字符转换为相应的Unicode / ASCII值,则会得到:
113 61 78 111 110 101 10 121 61 105 110 116 40 105 110 112 117 116 40 41 41 10 102 111 114 32 120 32 105 110 32 114 97 110 103 101 40 50 44 105 110 116 40 121 42 42 48 46 53 41 43 49 41 58 10 32 32 32 32 105 102 32 121 37 120 61 61 48 58 10 32 32 32 32 32 32 32 32 113 61 70 97 108 115 101 10 105 102 32 110 111 116 32 113 58 10 32 32 32 32 113 61 84 114 117 101 10 112 114 105 110 116 40 113 41
然后,您可以手动或使用自己的程序找到这些数字的总和。此特定程序的总和为8293,这是一个质数。
当然,这是Code Golf,因此您制作的程序越小越好。正如其他用户指出的那样,该程序不是很容易实现。
一些规则:
有效的输入包括STDIN和提示(没有功能,这只是添加免费的额外代码的一种方式)。允许使用空格,但前提是空格对程序的功能至关重要。输出必须是输出,而不仅仅是存储在变量中或返回(使用print,STDOUT等)
可以使用标志,并且应按字面意义进行计数,而不是扩展。不允许发表评论。对于非ASCII字符,应使用各自的编码将它们分配给该值。
确保列出程序的大小和程序的总和。我将进行测试以确保程序有效。
祝好运!
这是一个片段,用于计算程序的总和并检查其是否为素数: