#3。编写程序找出一个数的质因数。示例:56 的质因数 - #2, 2, 2, 7

#3. Write a program to find out the prime factors of a number. Example: prime factors of 56 - #2, 2, 2, 7

number=56
int(number)
c=[]

for i in range(2,number//2):
    if(number%i==0):
        c.append(i)
        number=number//i     
print(c)  

在此程序中,在 number=number//i 之后,i(在范围内)发生变化并变为 3,这就是 print(c) 在结果中给出 4 的原因。

我想以这样的方式循环这个 i ,它会从 2 开始几次。

我已经采用了另一个变量并循环进入但仍然给出 4 而不是 2 for i in range(2,number//2):

如评论所述,由于每个质因数可能需要多次,例如 8 = 2*2*2,您需要添加一个循环来检查模数,直到它不再为 0。
在你的情况下,最好的选择是 while 循环,而不是 if,并且不需要更改其他语法。

另请注意,如果您一直使用集合而不是列表,通过使用 c=set() 和后来的 c.add(i),结果仍然是错误的,因为集合中的元素是唯一的...