首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带范围素数的第一素数和最后素数

带范围素数的第一素数和最后素数
EN

Code Golf用户
提问于 2017-12-13 13:21:30
回答 9查看 1.5K关注 0票数 12

挑战

对于给定的正整数范围,找出完全由素数数字组成的第一个和最后一个素数,特别包括0(对于数字,0-2的范围应该输出2-2)。范围很广。如果找不到数字,则期望输出为0。如果只有一个这样的数字,那么预期的输出就是这个数字的两倍。

示例

  • 对于范围1-100,第一个素数是2,最后一个是73 (7和3是素数)。
  • 对于范围70-80,第一个素数为73,最后一个素数也为73 (由于给定范围内只有一个正确的数字,我们将返回两次)。
  • 对于范围190-200,没有正确的答案,所以您返回0。
  • 对于2000-2100范围,第一个素数是2003,最后一个是2053 (我们省略了数字0,但所有其他数字都是素数)。

这是密码-高尔夫,所以以字节为单位的最短代码获胜!

所有标准漏洞都适用。

输入

  • 您可以接受两个整数作为输入,但是您可以看到fit,堆栈,函数参数(S),CLI参数,stdin。
  • 您必须只接收两个整数。

输出

  • 您必须返回结果(元组、数组、多返回(如果语言支持的话)、将其留在堆栈中或打印它(在这种情况下,它们必须以某种方式分开)。
  • 输出的顺序是无关的。
  • 您可以使用前导/尾括号和换行符。
  • 如果有答案,您必须返回两个数字,即使它们是相同的。
  • 如果没有答案,则必须返回0。
EN

回答 9

Code Golf用户

发布于 2017-12-13 13:49:28

Python 2,123个字节

代码语言:javascript
复制
def f(a,b):r=[i for i in range(a,b+1)if(set(`i`)<=set('02357'))>any(i%k<1for k in range(3,i))];return len(r)and(r[0],r[-1])

在网上试试!

票数 6
EN

Code Golf用户

发布于 2017-12-13 14:29:09

JavaScript (ES6),83字节

在当前语法甲乙中使用范围(a)(b)。返回一个2元素数组或0.

代码语言:javascript
复制
n=>g=(m,a=0)=>n>m?a:g(m-1,(P=d=>m%--d?P(d):d>1|/[14689]/.test(m))(m)?a:[m,a[1]||m])

测试用例

代码语言:javascript
复制
let f =

n=>g=(m,a=0)=>n>m?a:g(m-1,(P=d=>m%--d?P(d):d>1|/[14689]/.test(m))(m)?a:[m,a[1]||m])

console.log(f(1)(100))
console.log(f(70)(80))
console.log(f(190)(200))
票数 4
EN

Code Golf用户

发布于 2017-12-13 17:16:24

Mathematica,91个字节

代码语言:javascript
复制
If[(s=Select[Range@##,(p=PrimeQ)@#&&And@@((p@#||#<1)&/@IntegerDigits@#)&])!={},MinMax@s,0]&

在网上试试!

票数 4
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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