我寫(xiě)了這個(gè)素?cái)?shù)篩選算法,它不能正常運(yùn)行。我在算法本身中找不到錯(cuò)誤。有人可以幫我嗎?這是應(yīng)該打印的內(nèi)容:[2 3 5 7 11 13 17 19 23 29]與它實(shí)際打印的內(nèi)容:[3 5 7 11 13 17 19 23 25 29]。package mainimport "fmt"func main() { var primes = sieve(makeNumbers(29)) fmt.Printf("%d\n", primes);}func makeNumbers(n int) []int { var numbers = make([]int, n - 1) for i := 0; i < len(numbers); i++ { numbers[i] = i + 2 } return numbers}func sieve(numbers []int) []int { var numCopy = numbers var max = numbers[len(numbers)-1] var sievedNumbers = make([]int, 0) for i := 0; numCopy[i]*numCopy[i] <= max; i++ { for j := i; j < len(numCopy); j++ { if numCopy[j] % numCopy[i] != 0 || j == i { sievedNumbers = append(sievedNumbers, numCopy[j]) } } numCopy = sievedNumbers sievedNumbers = make([]int, 0) } return numCopy}
- 1 回答
- 0 關(guān)注
- 225 瀏覽
添加回答
舉報(bào)
0/150
提交
取消