我試圖在python中將一個函數簡化爲一個根下的整數。例如:蟒蛇,平方根簡化函數
- √(27)= 3√(3)
- √(567)= 9√(7)
我寫了下面的功能,但它的工作部分,因爲我認爲while循環無效。 請幫忙嗎?
def sqrt2(num):
numbers=[]
roots=[]
#i=1-11
while num>1:
for i in range(1,num+1):
if num%i==0:
num=num//i
if num%i==0:
num=num//i
numbers.append(i)
else:
roots.append(i)
break
result=1
for i in numbers:
result= result*i
u_root=1
for j in roots:
u_root=u_root*j
print (result,"sqrt (",u_root,")")
取得什麼代碼,但它門檻並沒有得到所有分頻器。如果出現4次,它跳過一個數字。 – lilezek
它不應該。如果你跳出'for'循環,它將會以'I'爲'1'的方式重新開始,然後重新計數到再次匹配的'i'值。這可能不是非常有效,但它會起作用。 – Blckknght
啊,還有一個bug,其中'1'被認爲是除數。跳過1並從2開始可避免無限循環。 – Blckknght