在python 3.7.4中计算除数以检测素数
我试图自己编写一个代码来检测素数,但不小心,我发现这个代码工作得很好:在python 3.7.4中计算除数以检测素数,python,Python,我试图自己编写一个代码来检测素数,但不小心,我发现这个代码工作得很好: def prime_number_check(inp): setp = [ ] res = [ ] count = 0 for x in range(1, inp): setp.append(x) print(setp) #just to control the set for y in setp: #set of dividers if inp
def prime_number_check(inp):
setp = [ ]
res = [ ]
count = 0
for x in range(1, inp):
setp.append(x)
print(setp) #just to control the set
for y in setp: #set of dividers
if inp % setp[y-1] == 0:
res.append(setp[y-1])
else:
continue
print(res) #just to control the set
for z in res:
count += 1
if count > 1:
print(inp, "is not a prime number!")
else:
print(inp, "is a prime number!")
我尝试将输入的数字(将检查它是否为素数)除以比自身小的数字,并希望检测结果集是否有浮点结果或int结果,然后使用res.remove()
,删除浮点结果,然后如果有int结果而不是1,则打印而不是素数,否则打印prime
,但我失败了;而是找到了这个计算除数的代码
您能帮我找出如何在列表中进行float/int检查并返回结果吗?我试过bool()
,和isinstance()
,但总是在可写性方面出错。你说的“浮点除数”是什么意思?每个数都有无穷多个浮点数。例如,毫无疑问被认为是素数的数字3可以被1.5和2除,或者被1.2和2.5除,或者被1.1和2.7272除。查找“浮点除数”没有任何意义。例如,一行代码检测素数print(len([i代表范围内的i(1,n+1),如果n%i==0]);用户输入8,我的集合得到1到7的数字列表:[1,2,3,4,5,6,7],然后,使用for循环,我将输入数字(本例中为8)除以该集合的成员,即[1,2,3,4,5,6,7],然后将这些除法的结果附加到“另一个集合”,“结果集”,然后变成[8,4,2.666,2,1.6,1.333,1.142]。然后,我想检查这个结果列表,.remove()所有浮点值都只保留整数,如果有另一个整数与输入数本身不同,则输入数不是素数,否则是素数。。