我想在python中编写一个程序,它可以打印素数序列的第1到第n个数字,或打印素数序列的第n个数字。这是代码。只打印素数序列的第n个数python
import math
P = 2
X = raw_input('Choose a number: ')
Y = 1
def prime(P, Y):
Choice = raw_input('Select 1 to print X numbers of the Prime sequence. \nSelect 2 to print the Xth number in the Prime sequence. \nWhat is your choice: ')
if Choice == "1":
while Y <= int(X):
isprime = True
for x in range(2, int(P) - 1):
if P % x == 0:
isprime = False
break
if isprime:
print P
Y += 1
P += 1
elif Choice == "2":
prime(P, Y)
基本上,我有第一个部分,所以它打印1到第n个数字的主要序列。然而,我对如何使它只计算第n个素数很感兴趣,其中第n个素数是通过原始输入给出的。在python中必须可以做到这一点,但是,它将如何完成,以及如何做到这一点,而不必添加太多的新变量,但我并不在这里(尽管我会罚款这样做)。帮助将不胜感激。
真的,你有不管他们选择什么,都要以任何方式完成循环并计数到第X个素数;我只是将'if'移到循环内部,并且只要他们选择1或X == Y就打印每个结果。 –