首页 > 试题广场 >

公因数排序

[编程题]公因数排序
  • 热度指数:725 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

一种新的排序方法规定,如果任意两个具有大于的公因数,则它们可以交换位置。想知道对于给定的数列,能否通过该方法将其排为升序?


输入描述:

第一行一个正整数,表示测试数据组数;对于每组测试数据:

第一行一个正整数,表示数列中数字的个数;

第二行个整数,表示数列中的每个数字



输出描述:

对于每组测试数据,如果可以排序成功,输出;如果不能,输出(均不包含引号)。

示例1

输入

1
5
2 6 5 4 7

输出

Yes

说明

4和6具有公因数2,可交换,交换后数列为2 4 5 6 7升序,排序成功。

示例2

输入

1
4
1 3 2 4

输出

No

说明

升序为1 2 3 4,但2和3无公因数,不可交换,因此不能排序成功。


备注:
1 \leq T \leq 10;<br />2 \leq n \leq 10^5;<br />0 \leq a[i] \leq 10^6
谁能解释下。。
2 6 5 4 7
2和4换下位置为嘛就是24567了。。。?
发表于 2025-05-29 15:49:03 回复(1)