首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >戈德巴赫猜想

戈德巴赫猜想
EN

Code Golf用户
提问于 2014-01-27 06:33:45
回答 16查看 4.7K关注 0票数 18

编写一个程序,提示用户输入大于2的偶数整数。

给定Goldbach的猜想,即每一个大于2的偶数都可以表示为两个素数之和,打印出两个素数,相加后提供所请求的偶数。编辑:程序只需要打印一对素数,而不是全部。例如:

4:2+2

6: 3+3

8: 3+5

10: 5+5或3+7

EN

回答 16

Code Golf用户

发布于 2014-01-27 22:37:30

APL,34或44字节

第一个版本的符号长度为34个,仅限于原始单字节APL字符集中的字符,例如Dyalog APL中仍然支持的字符:

代码语言:javascript
复制
↑c/⍨n=+/¨c←,∘.,⍨v/⍨~v∊v∘.×v←1↓⍳n←⎕

解释:

代码语言:javascript
复制
                               n←⎕   ⍝ ask for a number, store as n
                          v←1↓⍳n     ⍝ generate all integers from 2 to n
                      v∘.×v          ⍝ compute the product table of any two such integers
                v/⍨~v∊               ⍝ select those that don't appear in the product table 
         c←,∘.,⍨                     ⍝ generate all possible pairs of these primes
    n=+/¨c                           ⍝ check which pairs have a sum equal to n
↑c/⍨                                 ⍝ take the first that does

第二个版本只有22个符号长,因为它利用π函数来检查素数,但只有在使用Unicode的NARS2000中才可用,所以UCS-2中的字节计数是44:

代码语言:javascript
复制
2⍴(⌿⍨{∧/0π⍵})(⍪,⌽)⍳⎕-1

解释:

代码语言:javascript
复制
                   ⎕    ⍝ ask for a number N
                  ⍳ -1  ⍝ generate all naturals from 1 to N-1
             (⍪,⌽)      ⍝ arrange it into a table of all pairs of naturals with sum N
     {∧/0π⍵}            ⍝ check which pairs are made of all primes
2⍴(⌿⍨       )           ⍝ return the first pair that does

示例

(⎕:是提示符要求一个号码)

代码语言:javascript
复制
      2⍴(⌿⍨{∧/0π⍵})(⍪,⌽)⍳⎕-1
⎕:
      4
2 2
      2⍴(⌿⍨{∧/0π⍵})(⍪,⌽)⍳⎕-1
⎕:
      6
3 3
      2⍴(⌿⍨{∧/0π⍵})(⍪,⌽)⍳⎕-1
⎕:
      8
3 5
      2⍴(⌿⍨{∧/0π⍵})(⍪,⌽)⍳⎕-1
⎕:
      124
11 113
票数 11
EN

Code Golf用户

发布于 2014-01-27 12:13:25

Ruby2.0 (65)

代码语言:javascript
复制
require'prime'
n=gets.to_i
Prime.find{|i|p [i,n-i]if(n-i).prime?}
票数 5
EN

Code Golf用户

发布于 2014-02-02 19:54:27

Python-107

基本上是对第二部分的改进(我在2.7上做了这个测试,但我认为它也适用于3.x)。

代码语言:javascript
复制
p=lambda x:all(x%i!=0 for i in range(2,x))
n=input()
for i in range(2,n-1):
    if p(i)&p(n-i): print i,n-i
票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/19463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档