Swift程式:顯示兩個區間之間的素數


本教程將討論如何編寫Swift程式來顯示兩個區間之間的素數。

素數是指大於1且只有兩個因數(1和它本身)的數。例如,3是素數,因為它只有1和3兩個因數。

以下是演示:

輸入

假設給定的輸入是:

Lower Interval = 18
Upper Interval = 42

輸出

期望的輸出是:

Prime numbers between 18 to 42 are
19
23
29
31
37
41

演算法

以下是演算法:

步驟1 - 宣告上下限區間。

步驟2 - 遍歷給定區間中的每個數字。

步驟3 - 跳過1和0,因為它們不是素數。

步驟4 - 宣告一個標誌變數。它表示給定數字是否為素數。如果標誌=0,則該數字為素數;否則不是。

步驟5 - 執行另一個for迴圈來檢查給定數字是否為素數。

步驟6 - 列印輸出。

示例

以下程式顯示如何顯示兩個區間之間的素數。

import Foundation
import Glibc
// Declaring lower and upper interval
var lowerInterval = 18
var upperInterval = 36
print("Prime numbers in between (lowerInterval) to (upperInterval)")
// Iterate through each number in the given interval
// Here we use upperInterval+1 because stride () function work from 18 to 35 not 36. 
for x in stride(from:lowerInterval, to: upperInterval+1, by:1){
   // Here we skip 1 because 1 is not a prime number
   if (x == 0 || x == 1){
      continue
   }
   // Flag tells if x is a  prime number or not
   var flag = 0
    
   for y in stride(from:2, to: x/2 + 1, by:1){
      // Checking x is divisible by y, if remainder = 0 then the number is not prime number
      if ((x % y) == 0){
         flag = 1
         break
      }
   }
   // If the flag = 0 then the number is  prime number or else it is not a prime number
   if (flag == 0){
      print(x)
   }
}

輸出

Prime numbers in between 18 to 36
19
23
29
31

在上面的程式碼中,我們找到18到36之間的素數。這裡,我們使用巢狀for迴圈以及stride()函式。外部for迴圈用於遍歷給定區間內的每個數字,內部for迴圈用於透過查詢餘數來檢查給定數字是否為素數。

for y in stride(from:2, to: x/2 + 1, by:1){
   if ((x % y) == 0){
      flag = 1
      break
   }
}

如果餘數等於0,則該數字不是素數,因此flag=1並中斷迴圈。如果餘數不等於0,則該數字是素數,因此flag=0並顯示該數字。此過程將持續到上限區間。

更新於:2022年12月13日

273 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告