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() 函数显示指定范围内的所有素数。