解题思路:先对这个数组排序,再根据下标的位置关系找到第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语言代码)浏览:1522 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:626 |
妹子杀手的故事 (C语言代码)浏览:679 |
多输入输出练习1 (C语言代码)浏览:1176 |
成绩转换 (C语言代码)浏览:1005 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:574 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:603 |
WU-输入输出格式练习 (C++代码)浏览:1076 |
WU-输出九九乘法表 (C++代码)浏览:1654 |
WU-判定字符位置 (C++代码)浏览:1395 |