如何在函数中生成质数

时间:2018-09-25 14:19:47

标签: swift

我想生成一组无穷素数。我正在使用两个功能。第一个函数检查数字是否为质数,并给出布尔值。第二个函数通过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
    }

1 个答案:

答案 0 :(得分:1)

查找素数是计算密集型操作。关于这个主题有很多博士论文。

使用像您这样的幼稚方法,您无法找到Int.max之前的所有素数。实际上,我怀疑即使使用最好的算法,您在一生的普通Mac上能否做到这一点。