func isPrime(_ x: Int) -> Bool {
var isPrimeNumber = true
for divisor in 2...(x - 1) {
if x % divisor != 0 {
isPrimeNumber = true
} else {
isPrimeNumber = false
}
}
return isPrimeNumber
}
func printPrimes(upTo n: Int) {
for y in 1...n {
if isPrime(y) == true {
print(y)
}
}
}
printPrimes(upTo: 12)编写一个名为printPrimes(upTo n: Int)的函数。函数应该打印介于1和n之间的素数。例如,如果传入100,则函数应该打印1到100之间的素数。如果一个数只能被它自己和1整除,而不能被任何其他数平除,那么它就是素数。使用n的几个不同值调用您的函数,并验证它是否打印正确的数字。
我不明白为什么我会收到这样的错误消息:
致命错误:无法使用upperBound < lowerBound
形成范围
发布于 2020-02-08 05:53:29
排在队伍里
for divisor in 2...(x - 1) {对于x= 2或x= 1,上界将小于下界(在您的情况下是2)。
在这种情况下,您应该检查x的值应该始终满足(x-1)大于2的条件。
https://stackoverflow.com/questions/60124273
复制相似问题