「除數」(divisor)是在除法算式中,用來「除」另一個數字(被除數)的數字。以 12 ÷ 4 = 3 為例,被除數是 12,除數是 4,商是 3。若指整數的整除關係,除數在中文也常被稱為「因數」(factor)。
def allPrimesUpTo(num):
primes = [2]
for number in range(3, num):
sqrtNum = number**0.5
for factor in primes:
if number % factor == 0:
break
if factor > sqrtNum:
primes.append(number)
break
return primes
print(allPrimesUpTo(20))
num.[2] because 2 is the first prime number.num - 1.number is divisible by any prime factor, it’s not prime.break exits the loop immediately.number must be prime.break stops checking further factors (no need).Example trace (num = 20)
Start:
primes = [2]number = 3→ factors checked: 2 (not divisible, 2 > √3) → add 3 →[2, 3]number = 4→ divisible by 2 → skipnumber = 5→ factors: 2 (not divisible), 3 (3 > √5) → add 5 →[2, 3, 5]number = 6→ divisible by 2 → skipnumber = 7→ factors: 2 (not divisible), 3 (3 > √7) → add 7 →[2, 3, 5, 7]number = 8→ divisible by 2 → skipnumber = 9→ divisible by 3 → skipnumber = 11→ factors: 2 (not divisible), 3 (not divisible), 5 (5 > √11) → add 11 →[2, 3, 5, 7, 11]… continues until 19.
沒有留言:
發佈留言