[英]python code trying to find prime number. Code is counting not prime number. Can't find why
[英]I can't seem to find the corrrect code for the Highest prime factor of a number in python 3
b = []
a = int(input("Enter the number: "))
for i in range(2,a):
if a%i == 0:
pass
else:
for j in range(2,i):
if i%j == 0:
break
else:
b.append(i)
for k in b:
if max < k:
max = k
print("max prime factor is this: ",max)
這很接近:但是有一些問題:
range(2,a)
檢查因子; 這僅包含從2
到a-1
整數,它忽略了素數的情況(其中a
是最高因子)。 使用range(2,a+1)
代替檢查這一點。i
整除(很好地使用%
),則您的第一個條件調用pass
,但這會跳過a
所有因素; 相反,如果a % i == 0
不pass
,您希望繼續檢查數字max
- max
是 function,所以當您說if max < k
時,這只是檢查 function 是否小於k
(這並不是真正有意義的比較),並且您的最后一個print
語句只是打印Python 的max
function 的字符串表示形式。 max
相反可以將數組作為參數,並返回最大值,因此您只需像max(b)
一樣將列表b
傳遞給max
; 不需要另一個循環! 以上就是這幾點,有問題請追問! 我喜歡使用break
的想法,我還添加了一個標志( prime
),以便更容易決定何時將 append 設置為b
。
b = []
a = int(input("Enter the number: "))
for i in range(2,a+1):
prime = True
if a%i == 0:
for j in range(2,i):
if i%j == 0:
prime = False
break
if prime:
b.append(i)
print(max(b))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.