题目描述
ldz 交给你了一个 1n 的排列,当某两个数字满足互质时,则可以交换这两个数字,请问你进行若干次交换后,能否将这个排列变为严格递增的。(即 1, 2, 3, 4… , n-1,n)
两个数字互质的定义:若两个数字的最大公约数为 11 时,即认为这两个数字互质。
输入描述
输入第一行包含一个整数 n(1≤n≤10^5)
接下来一行包含由空格隔开的 n 个正整数,第 i 个整数记为 a_i,保证每个数字仅出现一次,且满足 (1≤a_i≤n)
输出描述
输出 Yes 代表可以使得序列有序,否则输出 No。
样例输入 1
8
1 2 8 4 5 6 7 3
样例输出 1
Yes
样例解释 1
3 和 8 互质,直接交换这两个数字即可使得序列有序。
思路:原先写的听过的,但是突然想到存在素数就可以交换,有一个素数就可以完成题意了。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner read = new Scanner(System.in);
//其实一定为Yes的,只要有一个素数就可以进行交换,就可以直接变成递增的
//最小的素数是2
int n = read.nextInt();
for(int i=1;i<=n;i++)
{
int num = read.nextInt();
}
System.out.println("Yes");
read.close();
}
}