gpt4 book ai didi

swift - 检查数组中的素数

转载 作者:行者123 更新时间:2023-11-28 12:52:40 24 4
gpt4 key购买 nike

正在尝试为数组中的质数编写检查。该数组是随机填充的。但是当处理数组代码时不起作用......我做错了什么?谢谢!

更新 2正确填充数组。但是对于测试简单的数字,出了点问题。具体错在哪里不好说,但关键是简单的数字排序规则不起作用。

import Foundation

func randomArray(var i:Int,var k:Int, var array: [Int]=[], var newArray: [Int]=[]) ->Int {
for i=0;i<10;i++ {
array.append(Int(arc4random_uniform(10)))
}
for i=0;i<=array.count; i++ {
for k=2; k<array[i]; k++ {
if array[i] != 0 && array[i] != 1 && array[i]%k != 0 {
newArray.append(array[i])
} else {
return 0
}
}
}
return newArray[i]
}

randomArray(0, k: 0)

最佳答案

我不清楚你想做什么。

a) 如果您想随机生成一个长度为 k 的数组并过滤素数,请使用以下代码。请注意,这可以为您提供长度介于 0 到 k 之间的数组,因为它们在随机生成的数组中可能不是质数,或者生成的每个数字都是质数:

func isPrime(num: Int) -> Bool {
if num < 2 {
return false
}

for i in 2..<num {
if num % i == 0 {
return false
}
}

return true
}

func randomArray(len: Int) -> [Int] {
var results = [Int]()

for _ in 0..<len {
results.append(Int(arc4random_uniform(10)))
}

return results.filter(isPrime)
}

b) 如果你想要一个 k 质数的数组,请改用它:

func randomPrimeArray(len: Int) -> [Int] {
var results = [Int]()

while results.count < len {
let x = Int(arc4random_uniform(10))
if isPrime(x) {
results.append(x)
}
}

return results
}

关于swift - 检查数组中的素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35970763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com