今日小白再次嘗試數字打印。
這次是打印前50個素數。
如何確定一個數不是素數呢?
這要從素數的定義出發:
素數是指除了1與本身外,無乘因子的數。
所以我們可以用i(從2到該數)與該數進行餘數除法%。
如果餘數除法結果爲0,說明i是該數的餘數。
也說明它不是素數。
爲了應用參數函數,我們進行一個簡單的分析
———————————————————————————
我們首先需要建立一個判斷是否爲素數的函數。
命名其爲IfPrime( )
ifPrime( )函數代碼如下
def isPrime(number):
divisor = 2
while divisor <= number /2:
if number % divisor == 0:
return False
divisor += 1
return True
其中,小白髮現:
- 其實只要i(從2到該數的二分之一)與該數進行除法,就可以判斷其是否爲素數
- divisor(除數)從2開始即可(雖然很明顯很明顯ψ(`∇´)ψ)
好,接下來是打印素數函數,這是一個參數函數,需要一個參數。
參數命名爲numberOfPrimes(駱駝拼寫法)
代碼如下:
def printPrimeNumbers(numberOfPrimes):
NUMBER_OF_PRIMES = numberOfPrimes
NUMBER_OF_PRIMES_PER_LINE = 10
count = 0
number = 2
while count < numberOfPrimes:
if isPrime(number):
count+=1
print(format(str(number),"<4s"),end=" ")
if count%NUMBER_OF_PRIMES_PER_LINE==0:
print()
number+=1
注意:
我使用了字符串格式函數,否則表格打印會有偏移。
最後就是運行的main( )函數啦
def main():
print("The first 50 prime numbers are")
printPrimeNumbers(50)
main()
效果圖如下↓