#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)
,结果仍然是错误的,因为集合中的元素是唯一的...
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)
,结果仍然是错误的,因为集合中的元素是唯一的...