package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
if _, err := fmt.Fscan(reader, &t); err != nil {
return
}
const maxN = 100000
isPrime := make([]bool, maxN+1)
for i := 2; i <= maxN; i++ {
isPrime[i] = true
}
for p := 2; p*p <= maxN; p++ {
if isPrime[p] {
for i := p * p; i <= maxN; i += p {
isPrime[i] = false
}
}
}
for tc := 0; tc < t; tc++ {
var n int
fmt.Fscan(reader, &n)
ans := make([]int, n+1)
for i := 1; i <= n; i++ {
ans[i] = i
}
for p := n / 2; p >= 2; p-- {
if isPrime[p] {
var cycle []int
for k := p; k <= n; k += p {
if ans[k] == k {
cycle = append(cycle, k)
}
}
if len(cycle) > 1 {
first := cycle[0]
for i := 0; i < len(cycle)-1; i++ {
ans[cycle[i]] = cycle[i+1]
}
ans[cycle[len(cycle)-1]] = first
}
}
}
for i := 1; i <= n; i++ {
if i > 1 {
fmt.Fprint(writer, " ")
}
fmt.Fprint(writer, ans[i])
}
fmt.Fprintln(writer)
}
}