解题思路: 用sort函数先排序,然后求出第k大的数字减去第k小的数字的值m,再判断m是否是素数即可。
参考代码:
#include <bits/stdc++.h> using namespace std; const int N=10005; int a[N]; int prime(int n) { int k=sqrt(n); if(n<2) return 0; for(int i=2;i<=k;i++) if(n%i==0) return 0; return 1; } int main() { int n,k,m; cin>>n>>k; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n); m=a[n-k]-a[k-1]; if(prime(m)) cout<<"YES"<<endl; else cout<<"NO"<<endl; cout<<m; return 0; }
0.0分
0 人评分