解题思路:先对这个数组排序,再根据下标的位置关系找到第k大和第k小的数,最后对其差值判断是否为素数。
注意事项:1.容易忽略当差值小于2的情况,素数是从大于二开始。2.判断是否为素数的时候可能使代码运行超时,可将从2到sqrt(x)的循环改为从2到x/2+1。
参考代码:
#include<stdio.h>
int main()
{
int n,i,a[10000],j,m,k;
int max,t,flag=1;
scanf("%d%d",&n,&k);
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
for(i=0; i<n-1; i++)
{
max=a[i];
t=i;
for(j=i+1; j<n; j++)
{
if(a[j]<max)
{
max=a[j];
t=j;
}
}
a[t]=a[i];
a[i]=max;
}
for(i=0; i<n; i++)
{
m=a[n-k]-a[k-1];
}
if(m<2)
{
flag=0;
}
else
{
for(i=2; i<m/2+1; i++)
{
if(m%i==0)
{
flag=0;
}
}
}
if(flag==1)
printf("YES\n");
else
printf("NO\n");
printf("%d\n",m);
return 0;
}
0.0分
3 人评分
上车人数 (C语言代码)浏览:779 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:704 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:467 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:588 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:557 |
蓝桥杯历届试题-翻硬币 (C++代码)浏览:875 |
Tom数 (C语言代码)浏览:525 |
整数平均值 (C语言代码)浏览:783 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:770 |
字符逆序 (C语言代码)浏览:508 |