C 语言孪生素数

17 Mar 2025 | 6 分钟阅读

本主题将讨论孪生质数以及如何在C语言中打印孪生质数。孪生质数是一对质数,它们之间的差值总是**2**,因此被称为**孪生质数**。简单来说,如果两个质数之间的差值为2,并且它们之间恰好有一个合数,那么这些数被称为**孪生质数**。

Twin Prime Numbers in C

例如,(59, 61) 和 (71, 73) 是孪生质数对,这些数之间的差值是 61 - 59 = 2,以及 73 - 71 = 2。

孪生质数的性质

  1. (2, 3) 不被认为是孪生质数,因为它们之间没有合数,而且这两个质数 (2, 3) 的差值也不等于2。
  2. (3, 5) 是一对孪生质数,因为这两个质数之间的差值 (5 - 3 = 2) 为2,因此 (3, 5) 是孪生质数。
  3. 除了 (3, 5) 之外,每一对孪生质数都以 (6n - 1, 6n + 1) 的形式出现,其中 n 定义为自然数。
  4. 5 是唯一一个质数,它与正负质数之间的差值都为5。因此,5 出现在两对质数中:(3, 5) 和 (5, 7)。
  5. 如果我们把两对孪生质数相加,孪生质数的结果将可以被12整除,除了 (3, 5) 这对孪生质数。

使用用户自定义函数打印2到n之间的孪生质数的程序

C语言编程中创建一个程序,用于生成2到n之间的孪生质数。

Program1.c

输出

Enter the last number: 100
 The twin prime number is: (3, 5)
 The twin prime number is: (5, 7)
 The twin prime number is: (11, 13)
 The twin prime number is: (17, 19)
 The twin prime number is: (29, 31)
 The twin prime number is: (41, 43)
 The twin prime number is: (59, 61)
 The twin prime number is: (71, 73)
 Total number of twin prime pairs: 8

在上面的程序中,一个for循环遍历指定范围2到100之间的数字。之后,我们创建一个名为twinprime()的用户自定义函数,在for循环中调用它来检查**'i'**和**'i+2'**索引的质数情况。如果条件满足,它会打印孪生质数的总对数和孪生质数。

使用埃拉托斯特尼筛法算法打印孪生质数的程序

**埃拉托斯特尼筛法**是一种获取小于或等于给定数字 (n) 的所有质数列表的方法。它迭代到n个连续数字的质数,并检查第i个和第(i + 2)个数字是否都是质数,然后打印出质数;否则,它会移到下一个数字以获取孪生质数。这里,(3, 5),(5, 7),(11, 13) 是埃拉托斯特尼筛法算法的示例。

让我们考虑一个使用埃拉托斯特尼筛法算法获取孪生质数的示例。

Program2.c

输出

Enter the last number to get twin prime numbers: 200
 The twin prime numbers: (3, 5)
 The twin prime numbers: (5, 7)
 The twin prime numbers: (11, 13)
 The twin prime numbers: (17, 19)
 The twin prime numbers: (29, 31)
 The twin prime numbers: (41, 43)
 The twin prime numbers: (59, 61)
 The twin prime numbers: (71, 73)
 The twin prime numbers: (101, 103)
 The twin prime numbers: (107, 109)
 The twin prime numbers: (137, 139)
 The twin prime numbers: (149, 151)
 The twin prime numbers: (179, 181)
 The twin prime numbers: (191, 193)
 The twin prime numbers: (197, 199)

检查给定数字是否为孪生质数的程序

让我们考虑一个在C语言中判断给定数字是否为孪生质数的例子。

Program3.c

输出

Enter the first number: 71
 Enter the second number: 73
 71 and 73 are twin prime

第二次执行

Enter the first number: 15
 Enter the second number: 17
 15 and 17 are not twin prime

在上面的程序中,我们从用户那里获取两个数字,以检查给定数字是否为孪生质数。这里我们取5和7作为质数,函数返回5和7**是孪生质数**。同样,我们取数字15和17,函数返回这些数字**不是孪生质数**。