打卡的第乙個任務是判斷[1,1000]內的素數
素數:是只有兩個正因數(1和自己)的自然數。
我的構思如下:既然是只有兩個因數,那麼我們就要通過遍歷這兩個數中所有的數,進行運算,並通過餘數做出該數是否為素數的判斷。
我的初始**如下:
#找到[1,1000]裡的所有素數
list1 =
for i in
range(1
,1001):
for x in
range(2
,i):
yushu = i%x
if yushu ==0:
break
else
:print
(list1)
執行結果不盡人意。
在這裡,我判斷素數的原理是,當遍歷到[1,1000]中第i個數時,將i作為被除數,遍歷[2,i)中的所有數,並作為除數。只要出現餘數為0的情況,那麼就代表這個被除數除了1和自己本身,還存在其他因數,由此可判斷該數不為素數。
最後發現問題出在else語句的位置上。
上面語句的執行順序為:在[2,i)中,每遍歷乙個數當做第i個數的除數時,都會做一次「yushu」是否等於0的判斷。如果「yushu」為零那麼將執行break,如果「yushu」不為0,那麼list1列表中將會增添該數作為乙個新的元素。
而這樣就對這第i個數做了重複判斷,因為[2,i)中的數可能是因數也可能不是因數(並不相互影響)。
實際上,我們只需要有乙個「yushu」等於0,判斷出了有乙個並非1以及其本身的數為因數,那麼該數就已經不符合素數的條件了,也就不用再進行[2,i)中後面其他數是否能被整除的判斷了。
調整後新的**如下:
#找到[1,1000]裡的所有素數
list1 =
for i in
range(2
,1001):
for x in
range(2
,i):
yushu = i%x
if yushu ==0:
break
else
:print
('[1,1000]裡的所有素數有'
)print
(list1)
執行結果如下:
[1,
1000
]裡的所有素數有[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
,101
,103
,107
,109
,113
,127
,131
,137
,139
,149
,151
,157
,163
,167
,173
,179
,181
,191
,193
,197
,199
,211
,223
,227
,229
,233
,239
,241
,251
,257
,263
,269
,271
,277
,281
,283
,293
,307
,311
,313
,317
,331
,337
,347
,349
,353
,359
,367
,373
,379
,383
,389
,397
,401
,409
,419
,421
,431
,433
,439
,443
,449
,457
,461
,463
,467
,479
,487
,491
,499
,503
,509
,521
,523
,541
,547
,557
,563
,569
,571
,577
,587
,593
,599
,601
,607
,613
,617
,619
,631
,641
,643
,647
,653
,659
,661
,673
,677
,683
,691
,701
,709
,719
,727
,733
,739
,743
,751
,757
,761
,769
,773
,787
,797
,809
,811
,821
,823
,827
,829
,839
,853
,857
,859
,863
,877
,881
,883
,887
,907
,911
,919
,929
,937
,941
,947
,953
,967
,971
,977
,983
,991
,997
]
新調整的**不同點在於只要在[2,i)**現了第乙個除了1和第i個數本身之外的因數,那麼就會break,結束[2,i)之後的遍歷,直接判斷這個第i個數不是素數。只有當遍歷了[2,i)中所有數得到的「yushu」都不為0時,執行else,這時這個數才為素數,並且被新增在list1列表中。 課後作業之評價
每個人評價一下大家手頭正在使用輸入法或者搜尋類的軟體產品。從使用者介面 記住使用者選擇 短期刺激 長期使用的好處壞處 不要讓使用者犯簡單的錯誤四個方面發表一篇部落格。評價的內容 qq瀏覽器 使用者介面 2.記住使用者選擇 比如可以記錄住剛進的 如果使用者忘記了其他的 也可以從歷史記錄發現。1.短期刺...
課後作業之矩形類
題目 按以下要求編寫程式。1 建立乙個rectangle類,新增width和height兩個成員變數。2 在rectangle 中新增兩種方法分別計算矩形的周長和面積。3 程式設計利用rectangle 輸出乙個矩形的周長和面積。源 package com.task01 矩形類 public cla...
新的課後作業
2 將來你會選擇從事計算機相關的工作嗎?是的話給出你想去的城市 公司和崗位,否的話給出原因。2 即將大三的你,對照前人們走過的路和描述未來發展,現在的你 離成為乙個合格的計算機專業專科學生,在專業知識 技能 能力上還差距哪些?3 大三是乙個人生選擇的十字路口,考研 工作 考公 出國,不同的選擇在大三...