好吧,最後讓我們用c來實現,看看再能榨取多少效能。注意我沒有改變演算法,c的演算法和之前的3種都是基本相同的:
#include
#include
#include
#include
#include
#include
#include
typedef
unsigned
long
long ull;
//if failed return 0
ull sieve(ull n)
while(a[n]) n--;
return n;
}int main(int argc,char **argv)
sscanf(argv[1],"%llu",&n);
if(n == 0)
else
if(n < 0)
int start = clock();
ull result = sieve(n);
if(!result)
double end = ((1.0 * (clock() - start)) / clocks_per_sec) * 1000.0;
printf("max p is %llu (take %f ms)\n",result,end);
return
0;}
結果只比瀏覽器版的js稍慢一點,可見瀏覽器js優化的效果之好。不過c的計算非常穩定,不像瀏覽器中的js多次計算後效能急劇下降。 和 區別和聯絡, 和 區別和聯絡
和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...
rpx和樣式和class和flex
5 style 靜態的樣式統一寫到 class 中。style 接收動態的樣式,在執行時會進行解析,請盡量避免將靜態的樣式寫進 style 中,以免影響渲染速度。例 6 class 用於指定樣式規則,其屬性值是樣式規則中類選擇器名 樣式類名 的集合,樣式類名不需要帶上.樣式類名之間用空格分隔。關於f...
if和switch和for語句
if和switch很像。具體什麼場景下,應用那個語句呢?如果判斷的具體數值不多,而是符合byte,short,int,char,字串。這五種型別。雖然兩個語句都可以使用,建議使用switch語句,因為效率稍高。其他情況,對區間判斷,對結果為boolean型別判斷,使用if,if的使用範圍更廣。whi...