Python 計算100以內素數之和

2021-09-29 02:39:35 字數 1412 閱讀 1399

#找出100內所有素數

ls = ;

for i in range(100):

if i < 2:

continue;

#難點:

#1.range(2,2) 返回空值,直接跳過迴圈,未執行break,else語句會被執行

#2.for.j迴圈執行完畢後,如果未找到滿足i%j==0的數值,證明其是素數,break不會被執行,else會被執行;如果找到i%j==0的數值,證明其不是素數,break會被執行,else則不會被執行;

for j in range(2, i):

if i%j == 0:

#print("不是素數".format(i));

break;

else:

#print("是素數".format(i));

print(ls);

#求和s = 0;

for k in ls:

s += k;

print(s);

#執行結果

#[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

#1060

知識點:

1. 迴圈高階用法:迴圈與else

當迴圈沒有被break語句退出時,執行else語句塊;else語句塊作為"正常"完成迴圈的獎勵;這裡else的用法與異常處理中else用法相似;

for c in "python":

if c == "t":

continue;

print(c, end="");

else:

print("正常退出");

#執行結果

#pyhon正常退出

for c in "python":

if c == "t":

break;

print(c, end="");

else:

print("正常退出");

#執行結果

#py

2. range(n, n)返回空值

>>> list(range(2,2));

>>> list(range(1,1));

3. 為什麼迴圈中range(2,2)不報錯?

range(2, 2)返回乙個空的迭代器,for迴圈作用於空的迭代器上一次也不會執行,而是直接結束。空迭代器是合法的,不會報錯。 

4. python中for迴圈搭配else的陷阱

python100以內孿生素數 孿生素數

問題描述 若兩個素數之差為2,則這兩個素數就是孿生素數。編寫程式找出1 100之間的所有孿生素數。我的 import math def prime n count 0 for i in range 2,int math.sqrt n 1 if n i 0 count 1 i 1 if count 1...

python 求100以內素數 質數和

import math def is prime n 簡化問題,先利用函式判斷是否為質數 if n 1 是賦值,才是判斷,切記切記 return false for i in range 2,int math.sqrt n 1 質數判斷條件,注意 1 if n i 0 return false re...

python(2)輸出100以內的素數

方法 一 100以內素數 import math 如同c 中的 include defprime n 定義帶乙個引數n的函式 number 定義空陣列用來記錄位置上的數是素數true,不是false prime number 定義空陣列用來儲存素數 for i in range 0,n,1 遍歷0到...