我想生成一组无穷素数。我正在使用两个功能。第一个函数检查数字是否为质数,并给出布尔值。第二个函数通过while状态,将i的值扭曲并确定第一个函数为简单数字,然后将其附加到集合中。但不想工作。我认为也许我的一会儿状况不正确?而Int.max-1!=我的条件应该不同吗?
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
}
答案 0 :(得分:1)
查找素数是计算密集型操作。关于这个主题有很多博士论文。
使用像您这样的幼稚方法,您无法找到Int.max之前的所有素数。实际上,我怀疑即使使用最好的算法,您在一生的普通Mac上能否做到这一点。