1 Star 0 Fork 3

睿凡/sharecode

forked from dwing/sharecode 
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Nsieve.java 819 Bytes
一键复制 编辑 原始数据 按行查看 历史
dwing 提交于 2024-07-12 17:41 +08:00 . java: move Unsafe calls to UnsafeUtil; fix warnings
public class Nsieve {
static void nsieve(int m) {
int count = 0, i, j;
byte[] flags = new byte[m];
for (i = 2; i < m; ++i)
if (flags[i] == 0) {
++count;
for (j = i << 1; j < m; j += i)
// if (flags[j])
flags[j] = 1;
}
System.out.format("Primes up to %8d %8d\n", m, count);
}
static void nsieve2(int m) {
int count = 0, i, j;
byte[] flags = new byte[(m + 7) >>> 3];
for (i = 2; i < m; ++i) {
if (((flags[i >>> 3] >> (i & 7)) & 1) == 0) {
++count;
for (j = i << 1; j < m; j += i)
//noinspection lossy-conversions
flags[j >>> 3] |= 1 << (j & 7);
}
}
System.out.format("Primes up to %8d %8d\n", m, count);
}
public static void main(String[] args) {
int m = Integer.parseInt(args[0]);
for (int i = 0; i < 3; i++)
nsieve2(10000 << (m - i));
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
其他
1
https://gitee.com/lcpsky/sharecode.git
git@gitee.com:lcpsky/sharecode.git
lcpsky
sharecode
sharecode
main

搜索帮助