← Home
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)
	}
}