質數:能被1和本書整除的數()任何乙個質數都有兩個因子是1和質數本身,比如1,2,3,5,7,11是質數,而4,6,8,9就不是質數,它們還能被2或者3整除
因子:1,2,4的因子分別是(1)(1,2)(1,2,4)
z是乙個質數 z=x*y 當z等於7時(2,,,,,,10)1和7就不用去逐個去試了,用python地板除(取整數) 7/2=3(x,y為2或者3) 7/3=2 7/4=1 7/5=1 7/6=1
由此可見,我們只有試到7/2=3,試到3就可以基本確認,z是否為質數了 x <= z/2 <= y
當z等於a時(2......z-1在這區間去試是否含有因子的區間), 由此可見,我們只有試到a/2的時候,一半遞減
y=11
x=y//2 #地板除 y除於2取整數賦給變數x
while x >1: #當x>1
if y % x == 0: #如果y除於x等於0
print(y,'has factor',x) #輸出(y有因素為,x)
x -= 1 #x=x-1
else: #否則
print(y,'is prime') #輸出(y是質子)
python 質數因子求解
思路 從2開始到sqrt n 開始遍歷,當n i等於0時,當前i就是乙個質因子,之所以只遍歷到sqrt n 原因就是如果到sqrt n 後還是沒找到質因子,當再往上找時不會再有質因子,因為如果再往上找還有質因子,n除以這個質因子一定小於sqrt n 那在2到sqrt n 之間應該有它的質因子,與前面...
python 求輸入資料的質數因子
題目描述 功能 輸入乙個正整數,按照從小到大的順序輸出它的所有質因子 如180的質因子為2 2 3 3 5 最後乙個數後面也要有空格 python版 n int input i 2while i n while n i 0 n i print str i end i 1n從2開始除,遇到的第乙個整除...
Python華為機試 四 質數因子
題目描述 功能 輸入乙個正整數,按照從小到大的順序輸出它的所有質因子 如180的質因子為2 2 3 3 5 最後乙個數後面也要有空格 輸入描述 輸入乙個long型整數 輸出描述 按照從小到大的順序輸出它的所有質數的因子,以空格隔開。最後乙個數後面也要有空格。示例1輸入 180輸出 2 2 3 3 5...