回 帖 发 新 帖 刷新版面

主题:求快速判断两个数之间的素数的个数的算法

不要一个个判断的那种,我总是超时,求高手指点一下
我的代码:
#include<stdio.h>
int prime(long int a);
int main()
{
    long int i,m,n;
    int c;
    while(scanf("%ld%ld",&m,&n)!=EOF)
    {
        c=0;
        for(i=m;i<n;i++)
            if(prime(i)) c++;
        printf("%d\n",c);
    }
    return 0;
}
int prime(long int a)
{
    int i;
    for(i=2;i<=a/2;i++)
        if(a%i==0) return 0;
    return 1;
}

回复列表 (共1个回复)

沙发

int prime(long int a)
{
    int i;
    for(i=2;i<=sqrt(a);i++)
        if(a%i==0) return 0;
    return 1;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册