2512: 小明的惩罚

来源:互联网 发布:软件项目总结ppt 编辑:程序博客网 时间:2024/04/29 04:15

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;}


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