Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我有主要的孪生姐妹吗?

我有主要的孪生姐妹吗?
EN

Code Golf用户
提问于 2017-07-23 21:41:59
回答 15查看 4.2K关注 0票数 28

一个整数是素数当且仅当它是正数并且正好有两个不同的除数:1和它本身。一对孪生素数由两个元素组成:pp±2,它们都是素数。

您将获得一个正整数作为输入。您的任务是根据给定的整数是否属于双胞胎,按照标准的决策问题规则(值必须是一致的)返回一个真实/错误。

测试用例

  • Truthy (双子素描):3, 5, 7, 11, 13, 17, 19, 29, 31, 41, 43
  • Falsy (非双子素描):2, 15, 20, 23, 37, 47, 97, 120, 566

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

EN

回答 15

Code Golf用户

发布于 2017-07-23 22:49:07

Python 3,53字节

代码语言:javascript
运行
AI代码解释
复制
lambda n:sum((n+n%6-3)*n%k<1for k in range(2,4*n))==2

在网上试试!

背景

所有整数都采用以下形式之一,整数k: 6k - 3,6k - 2,6k - 1,6k,6k + 1,6k + 2。

由于6k -2、6k和6k +2都是偶数,由于6k -3是可被3除的,所以除2和3以外的所有素数都必须是6k - 1或6k +1形式。由于孪生素数对的差是2,除(3,5)外,所有孪生素数对都是形式(6k - 1,6k + 1)。

设n为6k±1形式。

  • 如果n=6k-1,则n+n%6-3=6k-1+(6k-1)%6-3=6k-1+5-3= 6k + 1.
  • 如果n= 6k + 1,则n+n%6-3= 6k + 1 + (6k +1)%6-3= 6k +1+1-3=6k-1。

因此,如果n是孪生素对的一部分,并且n≠3,则它的孪生子是n+ n%6 - 3。

是如何工作的

Python没有内置的原始性测试。虽然有一些简短的方法来测试单个数字的原始性,但是对两个数字进行测试将是很长的时间。我们要和区长合作。

代码语言:javascript
运行
AI代码解释
复制
sum((n+n%6-3)*n%k<1for k in range(2,4*n))

计算区间[2,4n)除以(n + n%6 - 3)n中的整数k数,即计算区间[2,4N]中(n + n%6 - 3)n的除数。我们声称这个计数是2当且仅当n是孪生素对的一部分。

  • 如果n=3(一个孪生素数),(n +n%6-3)n= 3(3 +3-3)=9在[2,12]中有两个除数(3和9)。
  • 如果n>3是孪生素数,则m := n+ n%6 -3是它的孪生体.在这种情况下,mn正好有四个除数: 1,m,n,mn。由于n> 3,我们有m> 4,所以4n < mn,正好有两个除数(m和n)落入区间[2,4N]。
  • 如果n=1时,则(n +n%6-3)n= 1 +1-3= -1在[2,4]中没有除数。
  • 如果n=2时,则(n +n%6-3)n= 2(2 +2-3)=2在[2,8]中有一个除数(本身)。
  • 如果n= 4,则(n +n%6-3)n= 4(4 +4-3)= 20在[2,16]中有4个除数(2,4,5,10)。
  • 如果n> 4是偶数,2,n/2,n都除以n,因此n+ n%6 - 3)n,自n>4我们就有n/2 >2,所以在[2,4N]中至少有三个除数。
  • 如果n= 9,则(n +n%6-3)n= 9(9 +3-3)= 81在[2,36]中有三个除数(3,9,21)。
  • 如果n> 9是3的倍数,则3,n/3,n都除以n,因此,(n +n%6-3)n,自n>9以来,n/3 > 3,因此在[2,4N]中至少有三个除数。
  • 最后,如果n= 6k±1 >4不是孪生素数,则无论n还是m := n+ n%6 -3都必须是复合的,因此允许适当的除数d >1。由于n=m+2或m=n+2和n,m> 4,所以整数d、m和n是mn的不同的除数。此外,m1时,mn在[2,4N]中至少有三个因子。
票数 8
EN

Code Golf用户

发布于 2017-07-24 09:33:57

Perl 6,24字节

代码语言:javascript
运行
AI代码解释
复制
?(*+(0&(-2|2))).is-prime

在网上试试!

*是这个匿名函数的参数。0 & (-2 | 2)是由数字0-22组成的连接点。将*添加到此连接将产生数字*和数字* - 2* + 2之一的连接。调用此连接上的is-prime方法将返回一个真实值,如果*是素数,并且* - 2* + 2都是素数。最后,?将真实连接折叠为布尔值,满足一致返回值条件.

票数 4
EN

Code Golf用户

发布于 2017-07-23 22:15:29

Mathematica,33字节

代码语言:javascript
运行
AI代码解释
复制
(P=PrimeQ;P@#&&(P[#+2]||P[#-2]))&

在网上试试!

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

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

复制
相关文章
laravel post提交数据时显示异常
这是由于在laravel框架中有此要求:任何指向 web 中 POST, PUT 或 DELETE 路由的 HTML 表单请求都应该包含一个 CSRF 令牌,否则,这个请求将会被拒绝。
全栈程序员站长
2022/07/07
1.1K0
Laravel Eloquent 模型关联关系详解(上)
我们所熟知的 MySQL、SQL Server、Oracle 都是关系型数据库,何谓关系型数据库?简单来说就是数据表之间存在关联关系。到目前为止,我们介绍的所有 Eloquent 模型操作都是针对单表的,接下来我们将花三篇左右的篇幅来给大家介绍如何在 Eloquent 模型类中建立模型之间的各种关联关系,以及如何实现关联查询和更新。
学院君
2023/03/03
10.2K0
Laravel Eloquent 模型关联关系详解(上)
创建对象时If语句该放哪?
看到我没有? 在那个validate函数中, if ...... else if ,那就是我。
chenchenchen
2019/09/02
8930
创建对象时If语句该放哪?
CA1849:当在异步方法中时,调用异步方法
从任务返回方法调用时,存在 Async 后缀等效项的所有方法都会生成此警告。 此外,调用 Task.Wait()、Task<T>.Result 或 Task.GetAwaiter().GetResult() 将生成此警告。
呆呆
2022/02/26
1K0
SSL 是否应当在负载均衡器上卸载?
StackExchange 网站的一名用户 Matt Goforth 对于 SSL 在负载均衡设备上的处理提出了他的疑惑:
星哥玩云
2022/07/19
9670
android的sd卡上创建目录不显示
但是如果要创建一个好几层的目录呢?即需要递归创建了,File有个方法叫做mkdirs(),即多了一个”s“,Yes!
张拭心 shixinzhang
2022/11/30
7980
JavaScript面试卷(二) -- 复杂的创建对象模型
接着上一篇文章说,上一篇创建的对象没有向外部提供直接设置属性值的入口。都是在new 创建对象时,给定默认值。
用户7293182
2022/01/17
6590
JavaScript面试卷(二) -- 复杂的创建对象模型
idea创建maven项目时一直显示“Loading archetype list ”
通过在网上查找,得到两种解决方案: maven的JRE运行时内存溢出,解决方案为加大JVM的可用内存,具体操作为: 在File → Settings → Build, Execution, Deployment → Build Tools → Maven → Importing_Build Tools → Maven → Importing选项下,设置VM options for importer为-Xmx1024m(默认值-Xmx512m太小了)。 删除{User_Home}/.Inte
栋先生
2018/09/29
2.2K0
Oracle创建数据对象时加双引号存在的问题
一位开发的同事在Oracle中创建表空间A,然后创建用户user_a并指定表空间为A时,提示表空间不存在。
星哥玩云
2022/08/18
8980
LeetCode *706. 设计哈希映射
题目 思路 和上一个题基本一样,把添加一个数改成添加一对pair就行 class MyHashMap { public: vector<list<pair<int, int>>> mp; const int base = 769; int hash(int key) { return key % base; } /** Initialize your data structure here. */ MyHashMap() {
SakuraTears
2022/01/13
2710
LeetCode *706. 设计哈希映射
java之对象创建时各成员变量的初始值
除了byte short int long float double char bollean这基础类型外,其余的都是引用类型
西西嘛呦
2020/08/26
1.2K0
控制对象的创建方式(禁止创建栈对象or堆对象)和创建的数量
我们知道,C++将内存划分为三个逻辑区域:堆、栈和静态存储区。既然如此,我称位于它们之中的对象分别为堆对象,栈对象以及静态对象。通常情况下,对象创建在堆上还是在栈上,创建多少个,这都是没有限制的。但是有时会遇到一些特殊需求。
恋喵大鲤鱼
2018/08/03
2.1K0
Leetcode 706. Design HashMap
文章作者:Tyan 博客:noahsnail.com | CSDN | 简书
Tyan
2021/03/15
2630
activexobject对象不能创建_无法创建office组件对象
JavaScript中ActiveXObject对象是启用并返回 Automation 对象的引用。
全栈程序员站长
2022/11/04
2K0
对象的创建
new —> 到常量池中检查是否存在一个类的符号引用 —> 如果有,检查这个符号引用代表的类是否已被加载、解析、初始化 —> 没有,则执行类加载过程。
潇洒
2019/07/03
9100
[Leetcode 2021 刷题计划] 706. 设计哈希映射
每日一题时间: 2020-03-14 题目链接: 706. 设计哈希映射 官方题解链接: 设计哈希集合 题目 不使用任何内建的哈希表库设计一个哈希映射(HashMap)。 实现 MyHashMap 类: MyHashMap() 用空映射初始化对象 void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映射中,则更新其对应的值 value 。 int get(int key) 返回特定的 key 所映射的 value
windism
2021/03/13
3470
C++|对象模型|对象模型综述
作为C++的核心单元,对象模型在编译器眼中是如何实现的?本文从几个基本理论模型出发,剖析实际。
朝闻君
2021/11/22
7130
C++|对象模型|对象模型综述
js创建对象
//创建对象 var chenhao = Object.create(null); //设置一个属性 Object.defineProperty( chenhao, 'name', { value: 'Chen Hao', writable: true, configurable: true, enum
用户7657330
2020/08/14
9.3K0
点击加载更多

相似问题

如何删除NSProgressIndicator周围的白色方块?

25

删除png图像周围的白色方块

16

从UISegmentedControl中删除白色渐变

11

删除ImageView周围的白色边框

32

删除片段周围的白色边框

29
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档