Python素数计算器

svdrlsy4  于 2022-11-21  发布在  Python
关注(0)|答案(3)|浏览(169)
prime = [2]
while len(prime) <= 1000:
    i=3
    a = 0
    for number in prime:
        testlist= []
        testlist.append(i%number)
    if 0 in testlist:
        i=i+1
    else:
        prime.append(i)
        i=i+1
print(prime[999])

试着做一个程序,计算素数的在线课程。这个程序永远不会结束,但我看不到一个无限循环在我的代码。
素数是一个只能被一除且其自身为零的数。
我的逻辑是,如果一个数可以被它前面的素数除,那么它就不是素数。

bf1o4zei

bf1o4zei1#

正如您的问题的注解所指出的,您的代码中有几个错误。
下面是运行良好的代码版本。

prime = [2]
i = 3
while len(prime) <= 1000:
    testlist = []
    for number in prime:
        testlist.append(i % number)
    if 0 not in testlist:
        prime.append(i)
    i = i + 1
print prime
f0brbegy

f0brbegy2#

我还没有测试,但你可以创建如下方法:

def get_prime_no_upto(number):
  start = 2
  primes = list(range(start,number)).to_a
  for no in range(start,number):
    for num in range(start,no):
      if ( no % num  == 0) and (num != no):
        primes.delete(no)
        break
  primes

并且可以像使用

print primeno(100)

干杯!

jvidinwx

jvidinwx3#

def prime_checker(number):
    stop = False
    prime = True
    n = 2
    while stop == False and n < number:
        if (number) % n == 0:
            prime = False
            stop = True
        n += 1
    if prime == True:
        print("It's a prime number.")
    elif prime == False:
        print("It's not a prime number.")

prime_checker(11)

相关问题