我對eratosthenes的篩子有些麻煩。 所以我得到了來自一個名爲「紹姆的大綱」一書篩的數學底子計算,但是我認爲這本書已經編程到代碼錯誤... 這是一本書的代碼:關於Eratosthenes的篩子
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();
}}
因此,我使用了代碼並做了一些細微的修改,因爲「Sieve()」沒有被識別。 這下面是我的代碼:
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 + " ");
}
}
}
}
所以......我到底做錯了什麼? 感謝您的幫助!
有什麼問題?編譯器錯誤?運行時異常?錯誤的輸出?還要別的嗎? –
關於公共靜態篩選編譯器錯誤 錯誤:無效的方法聲明;所需的返回類型 – SteelDevil
那麼編譯器消息不夠清楚嗎?你需要給你的'sieve()'方法返回類型。 –