package main import . "fmt" func main() { pr := gen() var q int Scan(&q) for ; q > 0 ; q-- { var a int Scan(&a) found := false for _, p := range pr { if p*p*p > a { break } if a%p == 0 { a /= p found = true break } } if !found { Println("No") continue } ans := "No" for _, p := range pr { if p*p > a { break } if a % p != 0 { continue } a /= p found = false for _, p2 := range pr { if p2*p2 > a { break } if a%p2 == 0 { found = true break } } if !found { ans = "Yes" } break } Println(ans) } } func init() { check() } func check() { pr := gen() loop1: for x := int(25e8-1); x > 1; x-- { for _, p := range pr { if x % p == 0 { continue loop1 } } for i := 0; i < 1000; i++ { for _, p := range pr { if x % p == 0 { break loop1 } } } break } } func gen() []int { sv := make([]bool, 1e5+1) pr := append(make([]int, 0, 1e4), 2, 3) for p, i, j := 5, 2, 4; p*p<1e10 ; p,i,j=p+i,j,i { if sv[p] { continue } pr = append(pr, p) for x := p+p; x < len(sv); x += p { sv[x] = true } } return pr }