如何查找素数(Python)
我是python编程的初学者,遇到了一个基本问题: 将素数打印到给定的数字 例如,数字100之前的素数数量 为什么我的代码不起作用?或者我的逻辑有什么问题 def count_primenum: newnumber=0 对于数量中的x: 如果x%2==0: newnumber=newnumber+1 printnewnumber 计数100如何查找素数(Python),python,primes,Python,Primes,我是python编程的初学者,遇到了一个基本问题: 将素数打印到给定的数字 例如,数字100之前的素数数量 为什么我的代码不起作用?或者我的逻辑有什么问题 def count_primenum: newnumber=0 对于数量中的x: 如果x%2==0: newnumber=newnumber+1 printnewnumber 计数100 测试一个数是否为素数的一个非常简单的方法,即计算速度较慢,就是简单地检查它是否可以被任何其他数除 def is_prime(n): # If n i
测试一个数是否为素数的一个非常简单的方法,即计算速度较慢,就是简单地检查它是否可以被任何其他数除
def is_prime(n):
# If n is 0 or 1, it is not prime
if n <= 1:
return False
# Check every number between 2 and n-1
for i in range(2, n):
# If n is divisible by i, then the remainder will be zero
if n % i == 0:
return False
# Since n wasn't divisible by any other number, it must be prime
return True
对于较大的num值,此方法将非常慢。要查看一些更快的检查数字素性的方法,您可以查看一下 def count_primenum:newnumber=0表示num中的x:if x%2==0:newnumber=newnumber+1 printnewnumber count_prime100如果您想更改您的问题,只需编辑它您的程序将尝试计算有多少个数字可被2整除,这些数字显然不是素数。它甚至无法实现这一点,因为它试图在一个数字上迭代循环。对于num中的x:with num=100将不起作用。。。你是说在rangenum中的x?
for i in range(num):
if is_prime(i):
print(i)
num = int(input("Enter a number: "))
if num > 1:
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")
else:
print(num,"is not a prime number")