| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 486 人关注过本帖
标题:谁有更好的方法 (求两个数间的素数)【在OJ上总是运行时间超限】
只看楼主 加入收藏
yangcaifei
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:2
帖 子:127
专家分:216
注 册:2014-11-3
结帖率:84%
收藏
已结贴  问题点数:20 回复次数:3 
谁有更好的方法 (求两个数间的素数)【在OJ上总是运行时间超限】
#include<stdio.h>
int main()
{
    int a,b,i,j,value;
    scanf("%d%d",&a,&b);
    for(i=a;i<=b;i++)
    {
        value=1;
        for(j=2;j<i;j++)
        {
            if(i%j==0)
            {
                value=0;
                break;
            }
        }
        if(value==1)
        {
            printf("%d\n",i);
        }
    }
    return 0;
}
2015-03-24 14:26
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:15 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

typedef unsigned long long ULL;

int main(void) {
    ULL *num = NULL, i, j, k, l, t;

    if(scanf("%lld%lld", &i, &j) != 2 || i < 2 || i > j) return 1;

    l = j - i + 1;

    if(!(num = malloc(l * sizeof(ULL)))) return 1;

    for(k = 0; k < l; k++) num[k] = k + i;

    for(i = 0; i < l; i++) {
        if(num[i])
            for(t = sqrt(num[i]), j = 2; j <= t; j++)
                if(num[i] && num[i] % j == 0)
                    for(k = 0; i + j * k < l; k++)
                        num[i + j * k] = 0;

        if(num[i]) printf("%llu ", num[i]);
    }

    free(num);
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-03-24 15:02
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
天天学习c,逛这个坛坛,几乎翻看所有初级帖子。发现好多人问类似问题,都快背熟了:找素数建立筛选表最快,我还看到有一大神用一行语句(4条语句)完成素数表建立。很容易理解的,拜托先搜坛坛相关内容再来问哦。
2015-03-24 15:08
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:5 
程序代码:
# include <stdio.h>
int main(void)
{
    int a=2,b=100;  //区间
    int i,j;
    
    for (i=a;i<=b;i++)
     {
         
       for(j=2;j*j<=i;j++)
       if(i%j==0)
        break;
       
       if(j*j>i)
        printf("%d ",i);
         
    
     }
     

    return 0;
}

你醒了?快起来敲代码!!
2015-03-24 15:24
快速回复:谁有更好的方法 (求两个数间的素数)【在OJ上总是运行时间超限】
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020104 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved