問題描述:
輸入乙個自然數n,求小於等於n的素數之和;例如:樣例輸入 :2 樣例輸出:2。
解題思路:
(1)什麼是素數:
素數(prime number)又稱質數,有無限個。乙個大於1的自然數,除了1和它本身外(因為1既不是素數,也不是合數),不能被其他自然數(質數)整除,換句話說就是該數除了1和它本身以外不再有其他的因數.
比如:2,3,5,7,11,…等。
(2)如何判斷乙個數是否為素數:
該數除了1和它本身以外不再有其他的因數,通俗的講,就是只能被1和這個數本身整除,不能被其它數整除;
(3)定義乙個變數sum,統計所有素數的和,當所有素數統計完成之後,列印sum;for (j = 2; j//j不能從1開始,因為1能整除任何數,所以j從2開始
if (i == j)
printf("%d ", i);//i就是乙個素數
**實現:
執行結果:#include
int main()
if (i == j)
}printf("%d\n", sum);
return
0;}
![](https://pic.w3help.cc/a02/91378674f1d4d5036437dfecf497b.jpeg)
前N個自然數的隨機置換
來自 資料結構與演算法分析 c語言描述 練習2.7 問題描述 假設需要生成前n個自然數的乙個隨機置換。例如,和 就是合法的置換,但 卻不是,因為數1出現了兩次而數 3 缺沒有。這個程式常常用於模擬一些演算法。我們假設存在乙個隨機數生成器 randint i,j 它以相同的概率生成 i 和 j 之間的...
歸納策略 求前n個自然數的平方之和
求前n個自然數的平方之和 s 1 2 2 2 3 2 n 2 因為 1 2 2 2 3 2 n2 1 2 3 n 2n 1 3 又由於 1 2 3 n n n 1 2,因此得到 1 2 2 2 3 2 n 2 n n 1 2n 1 6 推導過程 有乙個三角形的數字矩陣 12 2 3 3 3 4 4 ...
求n個連續自然數之和為乙個非負整數的陣列
def find combinations num n int num 0.5 這裡直接開根號,縮小迴圈範圍 res 前可以轉化成中間項的倍數,所以下面for迴圈求得是中間項的值 for i in range 2 n 1 if num i 0 mid 01 i 中間數 mid 02 int num ...