求助大佬,看别人go有过的,自己写的感觉没的优化了,只有两个AC,后面全超时
package main
import "fmt"
func main() {
var n,q,c int
fmt.Scanln(&n,&q)
b := isz(n)
for q>0{
fmt.Scanln(&c)
fmt.Println(b[c-1])
q--
}
}
func isz(n int) []int{
var a [1e8+1]bool
index := 0
prime := make([]int,5761500)
for i := 2;i<=n;i++{
if !a[i]{
prime[index] = i
index++
}
for j:=0;j<index&&i*prime[j]<=n;j++{
a[i * prime[j]] = true
if i%prime[j] == 0{
break
}
}
}
return prime
}