c c 補完計畫 三 素數統計

2021-10-11 18:49:20 字數 924 閱讀 2972

統計所有小於非負整數 n 的質數的數量

這是一道leetcode簡單級別的, 本來沒啥說的, 然後我發現了尤拉篩選法.

常規思路就是對每個數x進行檢測, 用x除以2到根號x, 有乙個可以整除, 就不是素數.

優點是連陣列或者vector都不需要, 有乙個算乙個, 很節省空間.

bool isprime(int i) 

return true;

}int countprimes(int n)

int count = 0;

for (int i = 2; i < n; ++i)

}return count;

}

是一種空間換時間的策略. 首先申請乙個n大小的bool型別的vector, 儲存實時判斷結果. 然後用另乙個vector儲存素數.

尤拉篩選法的核心思想就是, 如果乙個數i可以整除prime[j], 那麼i * prime[j + 1]肯定是合數, 因為它至少可以被prime[j]整除. 反應在**上就是直接跳出迴圈. 內層迴圈相比外層可以忽略不計, 時間複雜度為o(n).

int countprimes(int n) 

vectortmp(n, false);

vectorprime;

for (int i = 2; i < n; ++i)

for (int j = 0; j < prime.size() && i * prime[j] < n; ++j)

}return prime.size();

}

c c 補完計畫 六 語法糖lambda

function bind 最後很多語言都有lambda,c 自然不能缺,在c 11裡面加入了,是程式猿喜歡的語法糖,便於閱讀,也便於理解.當然,它有很多相關概念,這裡盡可能展開說.capture list params list mutable exception return type你會覺得和...

leetcode周賽補完計畫(三)

周賽135 leetcode 1037.有效的迴旋鏢 解題思路 就是判斷三角形的問題,用的斜率方法,座標抽平行另處理,未優化 public boolean isboomerang int points leetcode 1038.從二叉搜尋樹到更大和樹 解題思路 反向中序遍歷 右子樹 根節點 左子樹...

Oracle補完計畫

虛擬表 dual 查詢結構 desc xxooxox color red size x large 1.資料型別 size color 檢視oracle的環境配置,比如字符集 select from v nls parameters varchar2 變長字元型,maxlength 4000b 20...