【发布时间】:2018-07-21 16:03:04
【问题描述】:
我正在尝试编写一个实现埃拉托色尼筛的程序。我可以从 2 到任何给定的结束编号,但我们正在处理的任务要求我们输入起始值。我完全被卡住了。我尝试了许多不同的代码,但它一直给我奇怪的答案。
我的 start 是起始值,end 是结束值。我基本上想找到这个范围的素数。谢谢!!!
public static void sieve(int start, int end) {
int size=(end-start)+1;
boolean result[]=new boolean[size];
int prime[]=new int[size];
for(int i=0; i<size; i++) {
prime[i]=start+i;
}
for(int i=0; i<size; i++) { //every number in result is true
result[i]=true;
}
for(int p=2; p*p <size; p++) {
if(result[p]==true) {
for(int i=p*2; i<size; i +=p) {
result[i]=false;
}
}
for(int i=2; i<size; i++) {
if(result[i]==true) {
System.out.print(prime[i] + " ");
}
}
}
}
【问题讨论】:
标签: java primes sieve-of-eratosthenes