python - 为除数创建工具
问题描述
import requests
def repeat():
x = int(input("Common divisors of: "))
listrange = list(range(2,x))
emptylist = []
for number in listrange:
if x % number == 0:
emptylist.append(number)
print (emptylist)
elif x % number not in listrange:
print ("Prime number")
while True:
repeat()
每当我运行此代码时,无论我输入什么,它都会多次打印质数。
我想要它做的是给除 1 和整数之外的任何整数的所有公约数。如果整数是素数,我希望它打印素数。
然而,正如我之前提到的,由于某种原因,这会导致一个问题,即每当执行代码时,即使使用了语句,它也会一遍又一遍地打印素数。elif
解决方案
您当前的逻辑每次遇到不除数范围内的整数时都会打印“素数”,无论其他数字是否除以它(即它不是素数)(即它是素数)。
这个逻辑纠正了这一点:
def repeat():
x = int(input("Common divisors of: "))
listrange = list(range(2,x))
emptylist = []
for number in listrange:
if x % number == 0:
emptylist.append(number)
if not emptylist: #Checks if emptylist is empty i.e. is prime
print ("Prime number")
else:
print (emptylist)
例如
Common divisors of: 5
Prime number
Common divisors of: 28
[2, 4, 7, 14]
推荐阅读
- android - 从单独的进程观察时未触发 onSharedPreferenceChanged()
- python - 有两列具有相同的列名,我想从中删除一列
- python-3.x - 在 python 中:我可以依靠 random.seed() 来生成始终相同的矩阵排列吗?
- actionscript-3 - 创建以数组为值的关联数组
- java - 如何从java中的网站目录反序列化json文件
- android - 在 Android Studio 的调试模式下运行测试期间,我看不到我的 println 输出(测试未在模拟器或设备上运行)
- ftp - 是否可以将 Dialogflow 与 FTP 服务器上的数据连接起来?
- arm - 与 LDR 相比,像 LDTR 这样的 ARM 非特权加载存储指令的应用是什么?
- c# - 模拟内部具体方法
- java - 如何维护活动线程的数量 - java