Skip to content

Instantly share code, notes, and snippets.

@KoyaYamasaki
Last active March 4, 2022 11:33
Show Gist options
  • Save KoyaYamasaki/61d0a2a888741ebba636a029d79b6032 to your computer and use it in GitHub Desktop.
Save KoyaYamasaki/61d0a2a888741ebba636a029d79b6032 to your computer and use it in GitHub Desktop.
エラトステネスのふるい(中間生成物)
import Foundation
let range = 1000
var primeNumbers: [Int] = []
func sieveOfEratosthenes() {
for number in 0...range {
if number == 0 || number == 1 {
primeNumbers.removeFirst()
continue
}
if number * number > range {
break
}
primeNumbers = primeNumbers.filter { remain in
if remain == number {
return true // ここでのprimeNumbersの最小の値は素数
} else {
return !(remain % number == 0) // remainより大きいremainの倍数を除外
}
}
}
}
func main() {
primeNumbers = Array(0...range)
sieveOfEratosthenes()
print("Prime Numbers:")
print(primeNumbers)
}
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment