我正在尝试制作一个程序来查找数字是否为质数。
档案2:
class Number():
def __init__(self, x):
self.x = float(x)
def is_prime(x):
x = x
Div = 2
while ((x / 2) > Div):
if(x == 2):
return True
elif(x == 3):
return True
else:
while((x / 2) > Div):
if(x%Div == 0):
return False
elif(Div >= (x / 2)):
return True
else:
Div = Div + 1
文件1:
from File2 import *
N = Number(10)
print N.is_prime()
当我运行它时,我得到以下信息:
Traceback (most recent call last):
File "File 1", line 5, in <module>
print N.is_prime()
File "File 2", line 19, in is_prime
while ((x / 2) > Div):
TypeError: unsupported operand type(s) for /: 'instance' and 'int'
有人知道怎么修这个东西吗?
最佳答案
@Daniel Roseman已使用您的类定义解决了语法问题。这是对您选择的算法本身的更正,按原样返回None
(如果return
是素数,则返回不带显式x
语句的情况下返回的函数),并将4标识为素数。嵌套的while
循环不是必需的。尝试:
class Number():
def __init__(self, x):
self.x = float(x)
def is_prime(self):
x = self.x
if(x == 2):
return True
elif(x == 3):
return True
else:
Div = 2
while((x / 2) >= Div):
if(x%Div == 0):
return False
else:
Div = Div + 1
return True
for i in range(2,36):
N = Number(i)
print i, N.is_prime()
关于python -/不支持的操作数类型:'instance'和'int',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28374797/