我已經寫了一個函數,使用Eratosthenes方法篩選素數。該函數使用整數工作正常,但我現在試圖長期支持,以便我可以處理大量數據。 我似乎無法得到與多頭工作的功能,並無法看到明顯的原因。 錯誤指的是典型的精密警告從類型轉換等,但我不能工作是什麼導致他們: ./com/wkilgour/lang/Maths.java:21: error: possible loss of precision
我正在練習爲空間或時間複雜度優化的編寫算法。使用主篩時,至少必須存儲所有找到的素數列表。似乎數據與所發現的素數的數量成比例,是算法可能使用的最小空間量。 此理由是否有效? 該算法的空間複雜度如何評估? From Wikipedia about the sieve of Atkin - 我不確定的是當質數超過這個數時,篩子如何使用O(n^1/2)空間。這就是爲什麼看起來至少空間必須與素數成正比的原因
增加一個for循環整數j由我我想要把這個「僞」到的東西,在Java中的工作,我有麻煩 for j = i², i²+i, i²+2i, ..., not exceeding n:
這會是正確的嗎? for (int j = i*i; j < n; j++) {
//other code here that does the operation:
isPrime[j] = f
我希望得到第n個存儲在第n個主列表中的列表的第n個除數。例如,長度爲11的篩子,我想要篩子[6] == [2,3,6](忽略1)。我的下面的代碼不起作用,並以令人不快的方式讓我感到驚訝: sieve = [[]]*11
sieve[1] = [1]
for i in range(2,11):
for j in range(i,11,i):
sieve[j].app
我對eratosthenes的篩子有些麻煩。 所以我得到了來自一個名爲「紹姆的大綱」一書篩的數學底子計算,但是我認爲這本書已經編程到代碼錯誤... 這是一本書的代碼: public class Sieve
{
final static int P = 800;
static boolean[] isPrime = new boolean[count];
Sieve();