Swift 程式顯示 1 到 N 之間的所有素數
本教程將討論如何編寫一個 Swift 程式來顯示從 1 到 N 的所有素數。
素數是指大於 1 且恰好有兩個因數(1 和它本身)的數。例如,2 是素數,因為它只有兩個因數 1 和 2。
以下是相同內容的演示 -
假設我們輸入以下內容 -
Range - 1 to 20
以下是期望的輸出 -
Prime numbers between 1 to 20 are - 2, 3, 5, 7, 11, 13, 17, 19
演算法
以下是顯示 1 到 N 之間所有素數的演算法 −
步驟 1 - 建立一個名為“checkingPrimeNumber()”的函式,該函式將返回素數。
步驟 2 - 使用 if 語句檢查給定數字是否為 1 或 0。如果給定數字為 1 或 0,則返回 false。這意味著該數字不是素數。
步驟 3 - 從 2 到 num-1 執行一個 for 迴圈。
步驟 4 - 在 for 迴圈內檢查給定數字是否能被 j 整除。如果數字能被 j 整除,則返回 false,這意味著該數字不是素數;否則,該數字是素數,因此返回 true。
步驟 5 - 建立兩個變數來儲存下限和上限。此處這些變數的值可以是預定義的或使用者定義的。
步驟 6 - 從下限到上限執行另一個 for 迴圈。
步驟 7 - 透過呼叫 checkingPrimeNumber() 函式顯示給定範圍內的所有素數。
示例 1
以下程式顯示如何顯示 1 到 N 之間的所有素數。
import Foundation import Glibc func checkingPrimeNumber(num: Int) -> Bool{ // Checking if num for 1 or 0 // 1 and 0 are not prime number. // So, if num is 1 or 0, then return false // Which means the number is not prime number if(num == 1 || num == 0){ return false } // For loop starts from 2 to num - 1 for j in 2..<num{ // Checking the num is divisible by j, if yes // then the num is not prime number if (num % j == 0){ return false } } // Else num is prime number return true } var lowerLimit = 1 var upperLimit = 20 print("Range-\(lowerLimit) to \(upperLimit)") print("Prime numbers are :") // Checking for every number staring from // LowerLimit to upperLimit(that is 1 to 20) for k in lowerLimit...upperLimit{ // Checking if the current number is // prime number or not if (checkingPrimeNumber(num: k)){ // Display only prime number print(k) } }
輸出
Range-1 to 20 Prime numbers are : 2 3 5 7 11 13 17 19
在此,在上面的程式碼中,我們建立了一個名為 checkingPrimeNumber() 的函式,該函式接受一個引數並返回素數。現在,我們聲明瞭兩個名為 lowerLimit = 1 和 upperLimit = 20 的變數。我們從 1 到 20 迭代一個 for 迴圈,並透過呼叫 checkingPrimeNumber() 函式顯示 1 到 20 之間的所有素數。
示例 2
以下程式顯示如何透過獲取使用者輸入來顯示 1 到 N 之間的所有素數。
import Foundation import Glibc func checkingPrimeNumber(num: Int) -> Bool{ // Checking num for 1 or 0 // because 1 and 0 are not prime number. if(num == 1 || num == 0){ return false } // For loop starts from 2 to num - 1 for j in 2..<num{ // Checking the num is divisible by j, if yes // then the num is not prime number if(num % j == 0){ return false } } // Else the number is prime number return true } print("Please enter lower range:") // Enter the integer type lower range from the user var lowerLimit = Int(readLine()!)! print(lowerLimit) print("Please enter upper range:") // Enter the integer type upper range from the user var upperLimit = Int(readLine()!)! print(upperLimit) print("Entered range is \(lowerLimit) to \(upperLimit)") print("So following are the Prime numbers:") // Checking for every number staring from // LowerLimit to upperLimit for k in lowerLimit...upperLimit{ // Checking if the current number is // prime number or not if (checkingPrimeNumber(num: k)){ // Display only prime numbers print(k) } }
標準輸入
Please enter lower range: 1 Please enter upper range: 30
輸出
So following are the Prime numbers: 2 3 5 7 11 13 17 19 23 29
在此,在上面的程式碼中,我們從使用者處獲取下限和上限的值,並透過呼叫 checkingPrimeNumber() 函式顯示指定範圍內的所有素數。