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+ 次查看

开启您的 职业生涯

完成课程获得认证

开始学习
广告