| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1172 人关注过本帖
标题:请大佬看看我这筛法求素数哪里错了
只看楼主 加入收藏
温酒斩化腾
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-3-28
结帖率:72.73%
收藏
已结贴  问题点数:10 回复次数:1 
请大佬看看我这筛法求素数哪里错了
public class a11 {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        int[] a = new int[101];
        int i,j;
        for(i=2;i<=100;i++)
        {
            a[i]=i;
        }
        for(i=2;i<=50;i++)
        {
            if(a[i]!=0)
            {
                for(j=i+i;j<=100;j=j+i)
                {
                    a[j]=0;
                }
        }
        for(i=2;i<=100;i++)
        {
            if(a[i]!=0)
                System.out.println(a[i]);
        }
        }
    }

}
2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55
57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
为什么同样的算法用c语言的结果是正确的?
搜索更多相关主题的帖子: 筛法 素数 int for i++ 
2017-07-28 20:29
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
收藏
得分:10 
不好意思,没看懂你的算法,通常素数的判断方式是类似这样的
private static boolean isPrime(int n) {
    if (n < 2) {
        return false;
    }
    if (n == 2) {
        return true;
    }
    if (n % 2 == 0) {
        return false;
    }
    int max = (int) Math.sqrt(n);
    for (int j = 3; j <= max; j += 2) {
        if (n % j == 0) {
            return false;
        }
    }
    return true;
}
2017-07-28 22:36
快速回复:请大佬看看我这筛法求素数哪里错了
数据加载中...
 
   



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

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