204統計小於N的質數個數

2021-10-04 05:33:34 字數 819 閱讀 2680

統計小於n的質數個數

統計所有小於非負整數 n 的質數的數量。

示例:輸入: 10

輸出: 4

解釋: 小於 10 的質數一共有 4 個, 它們是 2, 3, 5, 7

class solution:

def countprimes(self, n: int) -> int:

import math

def judge(num):

l = math.sqrt(num)

for i in range(3,int(l)+1,2):

if num%i==0:

return false

return true

if n<=2: return 0

if n==3: return 1

count = 2

for i in range(5,n,2):

if judge(i):

count +=1

return count

# 思路:將有因子的數全部賦值=0

def countprimes2(self, n: int) -> int:

if n<=2: return 0

isp = [1 for i in range(n)]

isp[0],isp[1] =0,0

for i in range(2,n):

j = i

while j*i isp[i*j] = 0

j +=1

return sum(isp)

leetcode 204 質數的個數

判斷n以內的所有的質數的個數,直接的想法是判斷每個數是不是質數。然而n以內的數是由質數和合數組成的,合數可以由質數生成,質數的倍數就是乙個合數。判斷乙個數是否為質數,就是判斷2 根下n的每個整數是否可以被n整除,若都不能被整除,則為質數,否則為合數。換個角度,即2 根下n的每個整數的倍數都是合數,通...

篩法 求n以內質數個數

判斷n是否為素數 續篩法部分 區間篩法 若乙個數可以進行因數分解,則得到的兩個數一定是有乙個 x sqrt x x 另乙個 x sqrt x x 任何乙個數都可以拆分為若干個質因數的乘積,如6 2 3,7 1 7 複雜度o nn sqrt n n include using namespace st...

質數篩選 快速篩選出小於等於N的質數

此方法非常的簡單 1.維護乙個陣列vectorprime n 1,true 既讓陣列中的所有數都為真,表明它是質數。2.對於每乙個質數,刪除它的倍數,因為質數的倍數一定是合數。讓後將陣列中對應的數改為false,這樣就可以避免遍歷他。如下 int findprime int n return res...