如何在我的python代码中删除运行时(NZEC)错误?

时间:2015-07-05 16:35:19

标签: python

我正在尝试解决spoj.com中的主要生成器问题PRIME1但是遇到运行时错误(NZEC)。问题需要采取一些测试用例,对于每个测试用例,它需要为每个不同的测试用例输入一行中的两个数字,然后最终将输出打印为每个数字范围内的素数 错误是运行时错误时间:0.01内存:7736信号:-1

    # your code goes here

def is_prime(x):
    if x<2:
        return False
    if x==2:
        return True
    for y in range(2,x):
        if x%y==0:
            return False
    return True
t=int(raw_input())
mylist=[]

for i in range(0,t):
    a=raw_input()
    a=a.split(' ')
    mylist.append(int(a[0]))
    mylist.append(int(a[1]))
k=0
while k<len(mylist):
    c=mylist[k]
    k+=1
    d=mylist[k]
    k+=1
    for z in range(c,d+1):
        if is_prime(z):
            print z
    print

2 个答案:

答案 0 :(得分:1)

在python 2.7.9上运行时,我发现t中只有{1}}使用range(0, t),但t是字符串,因为我们{{1}方法读取输入并返回字符串。用Python的说法提出这个问题。要删除它,我们应该输入cast我们得到的输入。比如,t = raw_input()。 这将导致t为整数。

有关raw_input()的信息,请访问:https://docs.python.org/2/library/functions.html#raw_input

为了在python中读取整数,你可以在stackoverflow上关注this帖子。

答案 1 :(得分:0)

您的问题是raw_input()返回字符串,而不是整数。但您尝试直接在range()函数中使用它 - for i in range(0,t)range()函数只接受整数作为参数,因此您需要在输入范围之前将输入转换为int

t=int(raw_input())