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循环结束。
广告