#include <iostream> #include <algorithm> #include <vector> // 判断一个数是否为质数 bool isPrime(int num) { if (num < 2) return false; for (int i = 2; i * i <= num; ++i) { if (num % i == 0) return false; } return true; } int main() { int n, k; std::cin >> n >> k; std::vector<int> a(n); for (int i = 0; i < n; ++i) { std::cin >> a[i]; } // 对数组进行排序 std::sort(a.begin(), a.end()); // 计算第k大的数字减去第k小的数字的值m int m = a[n - k] - a[k - 1]; if (isPrime(m)) { std::cout << "YES" << std::endl; } else { std::cout << "NO" << std::endl; } std::cout << m << std::endl; return 0; } /************************************************************** Problem: 1242 User: fuyijun Language: C++ Result: Accepted Time:7 ms Memory:2076 kb ****************************************************************/