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 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.