Swift程序检查数字是否可以表示为两个素数之和


本教程将讨论如何编写Swift程序来检查一个数字是否可以表示为两个素数之和。

素数是指大于1且恰好有两个因数(即1和它本身)的数。例如,7是素数,因为它只有两个因数1和7。

这里我们检查给定的数字是否可以表示为两个素数之和。例如 -

Number = 10

所以10可以表示为素数之和 -

3+7 = 10
5+5 = 10
Similarly
Number  = 11

所以11不能表示为素数之和 -

10+1 = 11
5+6 = 11

以下是相同的演示 -

输入

假设我们的给定输入是 -

Num = 34

输出

所需的输出将是 -

Yes 34 is the sum of prime numbers.

算法

以下是算法 -

步骤1 - 创建一个函数来检查素数。

步骤2 - 声明一个变量来存储数字。

步骤3 - 运行一个从2到N/2的for循环。

步骤4 - 检查y是否为素数。

步骤5 - 如果y是素数,则检查N-y是否为素数。

步骤6 - 如果y和N-y都是素数,则给定的数字可以表示为y和N-y之和。

步骤7 - 如果y和N-y或者y或N-y都不是素数,则给定的数字不能表示为素数之和。

步骤8 - 打印输出。

示例

以下程序演示了如何检查一个数字是否可以表示为两个素数之和。

import Swift
import Foundation
func CheckPrime(num: Int)->Bool{
   if (num == 0 || num == 1){
      return false
   }
   for x in stride(from:2, to: num/2 + 1, by:1){
      if ((num % x) == 0){
         return false
      }
   }
   return true
}
var N = 10
var mFlag = 0
for y in stride(from:2, to: N/2 + 1, by:1){
   if (CheckPrime(num: y) == true){
      if(CheckPrime(num: N-y) == true){
         print("\(N) can be expressed as the sum of \(y) and \(N-y)")
         mFlag = 1
      }
   }
}
if(mFlag == 0){
   print("\(N) can not be expressed as the sum of two prime numbers")
}

输出

10 can be expressed as the sum of 3 and 7
10 can be expressed as the sum of 5 and 5

这里,在上面的代码中,我们首先创建一个名为CheckPrime()的函数。此函数用于检查给定的数字是素数还是非素数。如果给定的数字是素数,则返回true。否则返回false。

现在我们声明一个名为mFlag = 0的变量。如果mFlag = 1,则表示给定的数字可以表示为素数之和。如果mFlag = 0,则表示给定的数字不能表示为素数之和。

现在我们迭代一个for循环(从2到n/2)。在每次迭代中,它用于检查y和是否为素数。如果y是素数,则检查N-y是否为素数。当y和N-y都是素数时,表示给定的数字可以表示为y和N-y素数之和。因此打印输出并将mFlag的值设置为1。此过程持续到for循环结束。

更新于: 2022年12月13日

129 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告