【问题标题】:Python - n Prime [duplicate]Python - n Prime [重复]
【发布时间】:2018-07-23 09:23:22
【问题描述】:

我是 python 新手,我想知道如何创建一个函数,你可以在其中输入一个数字,它会为你提供数字素数。

示例:如果我输入 6,它会返回 13。因为 13 是第 6 个素数。

最好没有模块,除了标准库中的模块, 谢谢

【问题讨论】:

  • 您有问题吗?
  • 我该怎么做..?

标签: python primes


【解决方案1】:

这就是你要找的:

def nth_prime_number(n):
    # initial prime number list
    prime_list = [2]
    # first number to test if prime
    num = 3
    # keep generating primes until we get to the nth one
    while len(prime_list) < n:

        # check if num is divisible by any prime before it
        for p in prime_list:
            # if there is no remainder dividing the number
            # then the number is not a prime
            if num % p == 0:
                # break to stop testing more numbers, we know it's not a prime
                break

        # if it is a prime, then add it to the list
        # after a for loop, else runs if the "break" command has not been given
        else:
            # append to prime list
            prime_list.append(num)

        # same optimization you had, don't check even numbers
        num += 2

    # return the last prime number generated
    return prime_list[-1]

x = nth_prime_number(8)
print(x)
【解决方案2】:

试试这个代码! 我还附上了输出的截图。

num=int(input("Enter Position : "))
r =1000
count=0
import sys
for a in range(2,sys.maxsize**10):
    k=0
    for i in range(2,a//2+1):
        if(a%i==0):
            k=k+1

    if(k<=0):
        count=count+1
    if(count==num):
        print("Prime Number at position " , num , " is " , a)  
        break

【讨论】:

  • 如果我想要素数 1000,你的代码能用吗?
  • 是的,这是我的代码中的错误,因为我将范围限制为 1000 并且第 1000 个位置的质数是不可能的。现在我正在更新代码。谢谢@eyllanesc
猜你喜欢
  • 2019-04-08
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
  • 2020-01-26
相关资源
最近更新 更多