輸入乙個自然數n,求小於等於n的素數之和?

2021-08-22 15:09:25 字數 837 閱讀 6223

問題描述:

輸入乙個自然數n,求小於等於n的素數之和;例如:樣例輸入 :2 樣例輸出:2。

解題思路:

(1)什麼是素數:

素數(prime number)又稱質數,有無限個。乙個大於1的自然數,除了1和它本身外(因為1既不是素數,也不是合數),不能被其他自然數(質數)整除,換句話說就是該數除了1和它本身以外不再有其他的因數.

比如:2,3,5,7,11,…等。

(2)如何判斷乙個數是否為素數:

該數除了1和它本身以外不再有其他的因數,通俗的講,就是只能被1和這個數本身整除,不能被其它數整除;

for (j = 2; j//j不能從1開始,因為1能整除任何數,所以j從2開始

if (i == j)

printf("%d ", i);//i就是乙個素數

(3)定義乙個變數sum,統計所有素數的和,當所有素數統計完成之後,列印sum;

**實現:

#include

int main()

if (i == j)

}printf("%d\n", sum);

return

0;}

執行結果:

前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 ...