Python 中的质数
Prime number in Python
#Write your code below this line
def prime_checker(number):
for num in range (2, number):
if num % number == 0:
print("It is not a prime number")
else:
print("It is a prime number")
#Write your code above this line
#Do NOT change any of the code below
n = int(input("Check this number: "))
prime_checker(number=n)
如何打印一个数字为素数或不止一次的文本?
修复
number % num == 0
而不是 num % number == 0
当你发现一个数不能整除它时,这个数就不是质数,但只有当你测试了所有的数并且 none 将它整除时才会如此
使用for/else
构造,如果没有使用break
则进入else
def prime_checker(number):
for num in range(2, number):
if number % num == 0:
print("It is not a prime number")
break
else:
print("It is a prime number")
请注意,这只能解决您的问题,但这不是检查数字是否为质数的最佳方法,至少,结束范围为数字的平方根,并直接验证除以小数像 2,3,5,7
这样的数字
首先,通过
进行稍微更有效的质数检查
- 一直到数字的平方
- 步进 2
import math
def is_prime(n: int) -> bool:
if n in (2, 3, 5):
return True
if n < 2 or n % 2 == 0:
return False
for i in range(3, math.ceil(math.sqrt(n)), 2):
if n % i == 0:
return False
return True
现在您可以将该函数包装在您的函数中
def prime_checker(n: int):
msg = "%d is prime" if is_prime(n) else "%d is not prime"
print(msg % n)
prime_checker(11)
# 11 is prime
您的代码几乎没有错误。我修改了。
def prime_checker(number):
for num in range(2, number):
if number % num == 0:
print('Not prime')
return
print('Prime number')
# Write your code above this line
# Do NOT change any of the code below
n = int(input("Check this number: "))
prime_checker(number=n)
for循环是检查从2开始的数是否是数的因数
我认为检查一个数是否为质数是很好的
def is_prime(n):
st = "prime" # being prime status
for i in range(2,n):
if n % i == 0: # if number is prime
st = "not prime"
break;
return st
n = int(input("enter n: "))
print (is_prime(n))
您只需要更改代码的末尾
除了这些行之外,您的函数是正确的:
if num % number == 0:
print("It is not a prime number")
else:
print("It is a prime number")
您应该将这些更改为:
st = "Prime"
if number % num == 0:
st = "not prime"
return st
#Write your code below this line
def prime_checker(number):
for num in range (2, number):
if num % number == 0:
print("It is not a prime number")
else:
print("It is a prime number")
#Write your code above this line
#Do NOT change any of the code below
n = int(input("Check this number: "))
prime_checker(number=n)
如何打印一个数字为素数或不止一次的文本?
修复
number % num == 0
而不是 num % number == 0
当你发现一个数不能整除它时,这个数就不是质数,但只有当你测试了所有的数并且 none 将它整除时才会如此
使用for/else
构造,如果没有使用break
则进入else
def prime_checker(number):
for num in range(2, number):
if number % num == 0:
print("It is not a prime number")
break
else:
print("It is a prime number")
请注意,这只能解决您的问题,但这不是检查数字是否为质数的最佳方法,至少,结束范围为数字的平方根,并直接验证除以小数像 2,3,5,7
这样的数字首先,通过
进行稍微更有效的质数检查- 一直到数字的平方
- 步进 2
import math
def is_prime(n: int) -> bool:
if n in (2, 3, 5):
return True
if n < 2 or n % 2 == 0:
return False
for i in range(3, math.ceil(math.sqrt(n)), 2):
if n % i == 0:
return False
return True
现在您可以将该函数包装在您的函数中
def prime_checker(n: int):
msg = "%d is prime" if is_prime(n) else "%d is not prime"
print(msg % n)
prime_checker(11)
# 11 is prime
您的代码几乎没有错误。我修改了。
def prime_checker(number):
for num in range(2, number):
if number % num == 0:
print('Not prime')
return
print('Prime number')
# Write your code above this line
# Do NOT change any of the code below
n = int(input("Check this number: "))
prime_checker(number=n)
for循环是检查从2开始的数是否是数的因数
我认为检查一个数是否为质数是很好的
def is_prime(n):
st = "prime" # being prime status
for i in range(2,n):
if n % i == 0: # if number is prime
st = "not prime"
break;
return st
n = int(input("enter n: "))
print (is_prime(n))
您只需要更改代码的末尾
除了这些行之外,您的函数是正确的:
if num % number == 0:
print("It is not a prime number")
else:
print("It is a prime number")
您应该将这些更改为:
st = "Prime"
if number % num == 0:
st = "not prime"
return st