gpt4 book ai didi

arrays - 如何创建一个给出素数+ bool 值的函数?

转载 作者:行者123 更新时间:2023-11-30 10:43:03 25 4
gpt4 key购买 nike

从昨天开始我就在努力解决这个问题,如何创建一个具有素数列表并返回“素数+真/假”的函数例如:

2 正确3 真实4 假5 正确

在 Swift 5 中,第一个名为 primecheck 的函数运行良好,问题出在第二个 PrimeList

func primecheck (numbers:Int) -> Bool{ 

var prime = true

if numbers == 1 || numbers == 0 || numbers == 2{
prime = true

}
if numbers > 2{
for i in 2...numbers - 1{
if numbers % i == 0 {
prime = false

}

}
}
if numbers == 1 || numbers == 0 || numbers == 2{
prime = true

}

if numbers < 0{
prime = false
}
return prime
}


func PrimeList(maxP:Int) -> [(num1:Int, num2:Bool)] {


var primes: [(num1:Int, num2:Bool)] = []

for i in 1...maxP {

if primecheck(numbers:i){
print(i)
primes[i - 1] = (i, true)

} else {
primes[i - 1] = (i, false)
}
}
// isPrime[0] = true
// isPrime[1] = true

return primes
}

print(PrimeList(maxP:20))

预期输出:

print(primeList(maxP:20))
// 2 true
// 3 true

// 4 false
...
// 20 false

但总是出现这个错误:

Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0).

最佳答案

如果您觉得有意义,请参阅以下答案:

func isPrime(_ number: Int) -> String {

return "\(number) \(number > 1 && !(2..<number).contains { number % $0 == 0 })"
}

func PrimeList(maxP:Int) {
var array = [String]()
for number in 0...maxP {
array.append(isPrime(number))
}
print(array)
}

调用方法:

PrimeList(maxP: 20)

答:

["0 false", "1 false", "2 true", "3 true", "4 false", "5 true", "6 false", "7 true", "8 false", "9 false", "10 false", "11 true", "12 false", "13 true", "14 false", "15 false", "16 false", "17 true", "18 false", "19 true", "20 false"]

关于arrays - 如何创建一个给出素数+ bool 值的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56396900/

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