測試題1:求100以內(nèi)的素數(shù)脐帝。
思路:簡單粗暴软能,兩次遍歷俗扇,看每個數(shù)能不能被從2開始到本身的數(shù)(其實可以到本身的平方根就可以啦)整除饰潜。
def is_prime(n):
if n == 1:
return False
for i in range(2, n + 1):
fg = 1
for j in range(2, i):
if i % j == 0:
fg = 0
break
if fg == 1:
print(i)
is_prime(100)
其實用列表寫起來會更方便些初坠,因為想著不用列表,所以就沒有使用列表彭雾。(啊啊啊碟刺,C語言式的寫法,一點都不PythonJ碓汀)
看到群里小伙伴的另一種思路:先建立一個0-100的列表半沽,每遍歷一個數(shù),就把它的倍數(shù)刪除吴菠。一邊遍歷一邊刪除抄囚,剩下來的就是素數(shù)了。但是這種算法的時間復(fù)雜度也是O(n^2)橄务。不知道有沒有什么更好的算法呢幔托。