python實例1-找質數/素數


質數定義:質數(prime number)又稱素數。質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數

  • 示例解決方案1

有很多方法可以解決這個問題,下面是一些例子:這是一個不同的功能分解來解決問題。

def get_number(prompt):
'''Returns integer value for input. Prompt is displayed text'''
return int(input(prompt))


def is_prime(number):
'''Returns True for prime numbers, False otherwise'''
# Edge Cases
if number == 1:
prime = False
elif number == 2:
prime = True
# All other primes
else:
prime = True
for check_number in range(2, (number / 2) + 1):
if number % check_number == 0:
prime = False
break
return prime


def print_prime(number):
prime = is_prime(number)
if prime:
descriptor = ""
else:
descriptor = "not "
print(number, " is ", descriptor, "prime.", sep="", end="\n\n")


# never ending loop

while 1 == 1:
print_prime(get_number("Enter a number to check. Ctl-C to exit."))
 
        
  • 示例解決方案2
import sys
number = input("Please enter a number" + "\n" + ">>>")
number = int(number)
if number > 0:
for x in range (2, number): #this range excludes number and 1, both of which number is divisible by
if number % x != 0: #If number isn't evenly divisible by x, start over with the next one
continue
elif number % x == 0: #If number is evenly divisible by x, it can't be prime
sys.exit("The number is not prime.")
sys.exit("The number is prime.") #number wasn't evenly divisible by any x, so it's prime
elif number == 0:
sys.exit("The number is not prime.") #According to the Google, 0 is not prime
else:#if number is less than 0, the number is not prime (according to the Google).
sys.exit("The number is not prime.")
  • 示例解決方案3

我覺得這是最簡潔的一種

def prime(n):
factor=[i for i in range(2,n) if n%i ==0]
if len(factor)==0:
print(str(n)+"is prime!")
elif n==2:print(str(n)+" " +"is prime!")
else:print("not prime!")

以上就是解決找質數的三種方法,碰到一個問題要多想如何更加簡潔高效的實現功能,而不是實現了就行了,對自己要更高要求,這樣才會進步的更快。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM