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迴圈結束。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP