作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想生成一组无穷素数。我正在使用两个功能。第一个函数检查数字是否为素数并给出 bool 值。第二个函数,通过 while 状态,扭曲 i 的值并确定是第一个 func 的简单数字,然后将其附加到集合中。但不想工作。我想也许我的 while 条件不正确?而 Int.max - 1 != i 条件应该不同吗?
func checkPrime(_ number: Int) -> Bool {
var i = 2
while number / 2 >= i {
if number % i == 0 {
return false
}
i += 1
}
return true
}
func getPrimeInfinity() -> Set<Int> {
var prime: Set = [1, 2, 3]
var i = 3
while Int.max - 1 != i {
if checkPrime(i) {
prime.insert(i)
}
i += 1
}
return prime
}
最佳答案
寻找素数是一项计算密集型操作。关于这个主题有多篇 PHD 论文。
您无法使用像您这样天真的方法找到 Int.max 以内的所有素数。事实上,即使使用最好的算法,我怀疑你是否可以在普通 Mac 上完成它。
关于swift - 如何在func中生成质数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52500445/
我是一名优秀的程序员,十分优秀!