Java 关于Eratosthenes筛
我在埃拉托斯坦的筛子上有点麻烦。 所以我从一本名为“Schaum的大纲”的书中得到了筛子的数学计算,但我认为这本书的编程是错误的。。。 这是书中的代码:Java 关于Eratosthenes筛,java,sieve-of-eratosthenes,sieve,Java,Sieve Of Eratosthenes,Sieve,我在埃拉托斯坦的筛子上有点麻烦。 所以我从一本名为“Schaum的大纲”的书中得到了筛子的数学计算,但我认为这本书的编程是错误的。。。 这是书中的代码: public class Sieve { final static int P = 800; static boolean[] isPrime = new boolean[count]; Sieve(); { for (int i = 2; i<P; i++) { isPrime[i] =
public class Sieve
{
final static int P = 800;
static boolean[] isPrime = new boolean[count];
Sieve();
{
for (int i = 2; i<P; i++)
{
isPrime[i] = true;
}
for (int i = 2; i<P/2; i++)
{
if (isPrime[i])
{
for (int j = 2*i; j<P; j += i)
{
isPrime[j] = false;
}
}
}
}
public static void main(String[] args)
{
new Sieve();
print();
}
static void print() {
for (int i=0; i<count; i++)
if (isPrime[i]) System.out.println(i + " ");
else if (i%90==0) System.out.println();
System.out.println();
}}
public class Primenumbers
{
final static int count = 1000;
static boolean[] isPrime = new boolean[count];
public static sieve(int count, boolean isPrime);
{
for (int i = 2; i<count; i++)
{
isPrime[i] = true;
}
for (int i = 2; i<count/2; i++)
{
if (isPrime[i])
{
for (int j = 2*i; j<count; j += i)
{
isPrime[j] = false;
}
}
}
}
public static void main(String[] args)
{
for (int i=0; i<count; i++)
{
if (isPrime[i])
{
System.out.println(i + " ");
}
}
}
}
公共类筛选
{
最终静态int P=800;
静态布尔值[]isPrime=新布尔值[计数];
筛子();
{
对于(int i=2;i
我做错了什么
您已经定义了sieve()
,但从未调用过它。打印前需要调用它:
public static void main(String[] args)
{
sieve(); // <<== Here
for (int i=0; i<count; i++)
{
if (isPrime[i])
{
System.out.println(i + " ");
}
}
}
写
此更改使sieve()
method一个静态初始值设定项,它总是在类中的任何其他内容执行之前被调用。问题出在哪里?编译器错误?运行时异常?输出错误?其他内容?编译器错误关于公共静态筛选错误:无效的方法声明;需要返回类型编译器消息不够清楚吗?您需要为sieve()
方法指定返回类型。通过删除该方法并将其替换为static,它起了作用,但为什么只使用static而没有方法名称或方法类型?您能解释一下吗?好的,我将其添加到主方法中,但在编译时仍会出现错误:public static sieve(int count,boolean isPrime);
@SteelDevil顺便说一句,您需要删除方法amd构造函数声明中的分号-例如,我打赌Sieve()后面没有分号
在书中。好吧,就是这样!但是为什么你只使用静态它做什么作为一种方法?你能解释一下吗?非常感谢你的帮助!+为你先生或女士或机器人我不知道lol:)
public static sieve()
{
// Code to initialize isPrime
}
static
{
// Code to initialize isPrime
}