问题 2111: 连环阵
题目链接: https://www.dotcpp.com/oj/problem2111.html 题目来源:C语言网 题目描述 杰洛特主动出击狂猎的老巢,然而在此之前,他遇到了一个女术士,杰洛特想要女术士助自己一臂之力,她却出了一个难题给杰洛特,只有答对了才能与他同行 女术士给杰洛特一个四位数的素数,要求他说出这个四位数的数字的另外两个四位素数(从小到达输出),要求: 1.这个三个四位数组成等差数列 2.这三组数字的构成相同(即每个四位数都是其他数字的一种排列) 输入 多组数据输入 每次一个整数 输出 输出这三个数字,如果没有达成条件的三个数字,则输出"No" 样例输入 4817 1232 样例输出 1487 4817 8147 No 首先是题目的问题,此题并没有保证输入的四位数是素数(坑死…);对于这个题目我先预处理出来每个数是否是素数(埃式筛法),对于 n n n 先找出所有的排列( next_permutation() ),将其存入一个素数的数列当中(这里有一个坑点,有前导零的数字不算是四位素数…),首先判断 n n n 是否为素数,如果不是直接输入 N o No N o ,如果是素数就按照 n n n 在左边,中间和右边分别取枚举,如果存在满足条件的数列则输出,否则输出 N o No N o #include <