(Python3)题解 | 小红的排列构造①
小红的排列构造①
https://www.nowcoder.com/practice/2b0a9318cc0740d1a78eec06162e7bea
import sys def main(): n = int(sys.stdin.readline()) if n <= 2: print(-1) # 2, 1 或 1, 2 都会出现质数 return # 将奇偶数分组,奇数放在奇数位上,偶数放在偶数位上 # 奇数 + 奇数 = 偶数;偶数 + 偶数= 偶数 # 这样能保证都不是质数 # 生成初始排列[1, 2, 3, ..., n] arr = list(range(1, n+1)) # 因此只需要特别处理第一位 1+1=2 的情况, # 将最后一个奇数与1交换 if (n & 1) == 0: arr[0], arr[n-2] = arr[n-2], arr[0] else: arr[0], arr[-1] = arr[-1], arr[0] # 输出结果 print(" ".join(map(str, arr))) if __name__ == "__main__": main()