2512: 小明的惩罚


Time Limit: 1 Sec   Memory Limit: 128 MB

Submit: 1047  

Solved: 789

[

​Submit​​][

​Status​​][

​Web Board​​]


Description


小明和小慧吵架了,小明想见小慧并请求得到原谅。小慧给了小明两个数m和n(1<m<1000  和 m<n<2000 ),在m到n之间的素数中(范围包含m和n),相邻两个素数差的最大值就是小慧决定不见小明的天数,小明非常想知道几天后才能见到小慧,聪明的你帮帮小明吗?




Input


输入m和n


Output


相邻两个素数差的最大值


Sample Input

10 30

Sample Output

6

HINT


 10和30之间的素数有 11 13 17 19 23 29 ,相邻两个素数差的最大值是29-23 = 6


AC代码:


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int sushu (int a)//判断是否为素数
{
int k,b,c=1;
k=sqrt(a);
for(b=2;b<=k;b++)
if(a%b==0)
c=0;
return c;
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
int i,j,k=0;
int a[100];
int max;
for(i=m;i<=n;i++)
{
if(sushu(i))//如果为素数,保存进数组
{
a[k]=i;
k++;
}

}
max=-1;//设最大值为-1
n=a[0];
for(j=0;j<k;j++)
{
if(a[j]-n>max)//即后一项减去前一项
max=a[j]-n;
n=a[j];
}
printf("%d\n",max);
return 0;
}




很简单的一道题,在数组中做差时遇到一点问题。