要求:首先輸入乙個整數,決定了你要找的素數的範圍。然後動態分配出乙個陣列,進行素數篩。最後,根據需要輸出陣列中的素數(比如要求輸出某個範圍而不是整個陣列的素數都輸出)、統計在這個範圍內素數的個數。
#include
#include
intis_primer
(int b,
int arr)
;int
main()
printf
("searrch range:");
scanf
("%d %d"
,&b,
&c);
int b2 = b;
int b3 = b;
for(b;b<=c;b++)}
}for
(b3;b3)
count =
(c-b2)
-count+1;
printf
("count:");
printf
("%d\n"
,count);}
intis_primer
(int b,
int arr)
}return ret;
}
自我感覺:**過於繁雜,變數命名過多,可讀性差,判斷素數個數的**可以用函式表達,感覺可用指標優化但指標不夠熟練或者說不會用。雖然寫了出來但很爛。
小改進:用sqrt,引入計算素數個數的函式
#include
#include
#include
intfornum
(int b,
int i,
int c,
int arr)
;int
is_primer
(int b,
int arr)
;int
main()
printf
("searrch range:");
scanf
("%d %d"
,&b,
&c);
int b2 = b;
int b3 = b;
for(b3;b3)//count = (c-b2)-count+1;
printf
("count:");
printf
("%d\n"
,fornum
(b,b2,c,arr));
free
(arr);}
intis_primer
(int b,
int arr)
}return ret;
}int
fornum
(int b,
int i,
int c,
int arr)
}}return
(c-i)
-count;
}
也可將陣列內所有非素數改為0,隨後判斷輸入範圍內非0元素的個數並輸出。 C 初學 動態陣列類模板
動態陣列類模板 程式設計過程中用到了模板類 函式模板 運算子過載 建構函式 析構函式 動態記憶體分配等知識。理論上改模板能實現訪問任意型別 包括自定義 元素。標頭檔案1 stdafx.h ifndef stdafx h included define stdafx h included includ...
初學演算法 動態規劃之滾動陣列
魅力手鐲 描述 貝西去了購物中心的珠寶店,發現了乙個迷人的手鐲。當然,她想用n 1 中可能的最佳魅力來填充它 n 3402 可用的護身符。所提供列表中的每個咒語都有乙個權重wi 1 wi 400 乙個 可取性 因子di 1 di 100 最多可使用一次。貝西只能支援重量不超過m 1 的魅力手鐲 m ...
初學動態規劃
1 動態規劃定義 動態規劃 動態規則可用於解最優解的問題,其基本思想為把乙個大的問題分析小的子問題,並記錄每個子問題的結果,再通過這些子問題的解能解出最終的結果。應用於重疊子問題的問題。步驟 1 把乙個問題分解成好的子問題。2 對每個子問題求解並記錄下每個子問題的結果。例一 poj 2533 思路 ...