程式碼:
car=lambda lst:lst[0]
cdr=lambda lst:lst[1:]
def prime(num,pr,pri):
if num == []:
return pri
elif pr == []:
return prime([cdr(num)],pri + [car(num)],pri + [car(num)])
elif (car(num)% car(pr) == 0):
return prime([cdr(num)],pri,pri)
elif (car(num)% car(pr) != 0):
return prime(num,[cdr(pr)],pri)
舉例:
我代num=[3,4,5,6] pr=pri=[2]
我想找3~6中的質數
但出現錯誤:
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
prime(num,pr,pri)
File "C:\Users\user\Desktop\prime.py", line 12, in prime
return prime(num,[cdr(pr)],pri)
File "C:\Users\user\Desktop\prime.py", line 9, in prime
elif (car(num)% car(pr) == 0):
TypeError: unsupported operand type(s) for %: 'int' and 'list'
是我哪裡有問題嗎?
還有質數可以這樣找吧??
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.248.68.248
→
10/05 23:28, , 1F
10/05 23:28, 1F
推
10/06 02:34, , 2F
10/06 02:34, 2F
推
10/07 00:25, , 3F
10/07 00:25, 3F