Swift程序 从数组中找出素数
在这篇文章中,我们将学习如何编写一个swift程序,从数组中找出素数。
质数是那些只能被1和它本身整除的数字。或者我们可以说质数只有两个因子,即1和数字本身。例如,1,2,7,3,11,31,等等。因此,为了从给定的数组中找到质数,我们要单独检查给定数组中的每个元素是否是质数。
算法
- 第1步 – 创建一个函数。
-
第2步 – 检查该数字是否大于等于1。如果是,则返回true。
-
第3步 – 从2到num-1运行for循环。
-
第4步 – 检查这个数字是否能被任何其他数字整除。如果是,则返回false。否则返回true。
-
第5步 – 创建一个整数类型的数组。
-
第6步–运行一个for循环,遍历数组中的每个元素。
-
第7步–通过函数中的每个元素来检查素数。
-
第8步 – 打印输出。
示例 1
以下是Swift程序,从数组中找出素数。
import Foundation
import Glibc
// Function to check if a number is prime
func CheckPrime(_ num: Int) -> Bool {
if num <= 1 {
return false
}
for i in 2..<num {
if num % i == 0 {
return false
}
}
return true
}
// Creating an array of integer type
let mArr = [11, 97, 43, 24, 601, 444, 733]
print("Original array:", mArr)
print("Prime numbers are:")
// Check and print the prime numbers
for n in mArr {
if CheckPrime(n) {
print(n)
}
}
输出
Original array: [11, 97, 43, 24, 601, 444, 733]
Prime numbers are:
11
97
43
601
733
在上面的代码中,我们有一个整数类型的数组。现在我们创建一个函数,从给定的数组中找出素数。所以在这个函数中,首先我们检查数字是否小于或等于1。如果数字是1或小于1,那么它将返回false,因为1不是一个质数。如果数字大于1,那么它将进入从2到num-1的for循环,并检查num是否能被任何一个数字所除。如果是,则该函数返回false。否则返回true。
示例 2
以下是Swift程序,从数组中找出素数。
import Foundation
import Glibc
// Function to check if a number is prime
func CheckPrime(_ num: Int) -> Bool {
if num <= 1 {
return false
}
for i in 2..<num {
if num % i == 0 {
return false
}
}
return true
}
// Creating an array of integer type
let mArr = [733, 10, 11, 53, 24, 151]
print("Original array:", mArr)
let primeNum = mArr.filter { CheckPrime($0) }
print("Prime numbers are:", primeNum)
输出
Original array: [733, 10, 11, 53, 24, 151]
Prime numbers are: [733, 11, 53, 151]
在上述代码中,我们有一个整数类型的数组。现在我们创建一个函数来检查给定的数字是否为质数。所以现在我们使用filter()函数来创建一个数组,其中包含所有满足给定条件的元素,即{ CheckPrime($0) }。在这里,filter()函数将mArr数组中的每个元素传递给CheckPrime(),以检查给定的数字是否是质数。如果该数字是质数,那么结果将存储在primNum数组中。否则移到下一个数字。这个过程一直持续到数组的结束。
结论
因此,这就是我们如何使用两种不同的方法从数组中找到素数。在第一个方法中,我们创建了一个用户定义的函数,并在主函数中调用该函数。在第二个例子中,我们在主函数中执行了这个函数。