今日小白再次尝试数字打印。
这次是打印前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()
效果图如下↓