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() 函式顯示指定範圍內的所有素數。

更新於: 2022年8月5日

4K+ 次檢視

開啟您的 職業生涯

完成課程獲得認證

開始學習
廣告