⑴ python素數
第一空:
2
第二空:
1
⑵ Python編程#輸出n以內的所有質數。
質數又稱素數。指在一個大於1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數。
一般正常人的解法是兩次循環,假設求小於N的所有素數。一次用N-1之間的所有數去除,如果能被整除這個數肯定不是素數。否則是素數。
⑶ Python求質數
如下:
importmath
defm(a,b):
ret=0
forxinrange(a,b+1):
foryinrange(2,int(math.sqrt(x))+1):
ifx%y==0:
break
else:
ret+=1
print(ret)
輸入:m(3,7)
得到:3
⑷ 求質數python1-100
1~100之間的質數有25個,分別是2、3、5、
7、11、13、17、19、23、29、31、37、41、
43、47、53、59、61、67、71、73、79、
83、89、97。
⑸ python 如何判斷一個數是不是質數
代碼如下:
#coding=utf8
printu'請輸入一個數:'
n=input()
isPrime=True
foriinrange(2,n):
ifn%i==0:
isPrime=False
break
ifisPrime:
printstr(n)+u'是一個素數。'
else:
printstr(n)+u'不是一個素數。'
⑹ python如何判斷素數
以下的代碼,求100以內的所有素數:
for i in range(2,100):
for j in range(2,i):
if i%j==0:
break
else:
print(i,end='\t')
⑺ python 找最大質數問題
"""題主的問題主要有三個:
1.max_prime中的i錯寫成了x,這是導致錯誤的原因
2.s=[]應放在函數max_prime中,這樣才符合程序設計原則
3.如果要求的是包含x在內的最大質數,max_prime函數中range應
寫成range(2,x+1),此時i的取值范圍才是2到x
此外,尋找最大質數時max_prime中遍歷時應該從後往前遍歷,此時遇到
的第一個質數就是所求最大質數,而不必從前遍歷做無用功。
修改代碼如下:
"""
defprime(x):
foriinrange(2,x//2+1):
ifx%i==0:
returnFalse
returnTrue
defmax_prime(x):
foriinrange(x,1,-1):#x+1以包含x本身
ifprime(i):
returni
print(max_prime(1000))
⑻ Python 素數
i = 2
while i <= 100:
j = 2
while j <= i / j: #難點1
if i % j == 0:
break #如果提前提出,j的值<= i / j
j = j + 1
if j > i / j: #難點2
print(i, end=' ')
i = i + 1
其實代碼每一句都很簡單,就不一一注釋了,其實難的是思路。主要是兩個地方對J變數的判斷
A:while循環,一種常見的是j<=sqrt(i),用這個數的開方(根號)來指定搜索上限,這是因為:
一個數若可以進行因數分解,那麼分解時得到的兩個數一定是一個小於等於sqrt(n),一個大於等於sqrt(n)——所以只要搜索到根號的地方就可以了,提高了速度。
用i/j的方式是sqrt的一種變種,j<=sqrt(i),由於i>j>1,兩邊平方後不等式仍然成立
j^2<=i
兩邊除以j就變成了j
<=
i
/
j
B:第二處,根據j的數值來判斷i是否是素數。當在循環中找到i
%
j
==
0的情況,循環會提前退出,導致j
< i
/
j——說明不是素數;如果循環沒有提前退出,說明i是素數,這時j的值>
i
/
j
⑼ python判斷素數是什麼
判斷是否為素數的方法:
1、利用for循環和break語句,代碼為【for i in range(2, k+2):if m % i == 0:break】。
2、利用while循環和bool變數。
python使用技巧
如果在異常處理程序或 finally 塊中引發異常,默認情況下,異常機制會隱式工作會將先前的異常附加為新異常的 __context__ 屬性。這就是 Python 默認開啟的自動關聯異常上下文。
如果你想自己控制這個上下文,可以加個 from 關鍵字( from 語法會有個限制,就是第二個表達式必須是另一個異常類或實例。),來表明你的新異常是直接由哪個異常引起的。
⑽ python如何算質數和
你好的!
importmath
defis_prime(n):#簡化問題,先利用函數判斷是否為質數
ifn==1:#=是賦值,==才是判斷,切記切記
returnFalse
foriinrange(2,int(math.sqrt(n))+1):#質數判斷條件,注意+1
ifn%i==0:
returnFalse
returnTrue
primes=[]
name=int(input())
foriinrange(1,name):#注意這個逗號,很容易寫錯!
ifis_prime(i)isTrue:#bool值用is判斷
primes.append(i)
print('100以內的素數:{} 100以內素數和:{}'.format(primes,sum(primes)))
歡迎追加懸賞並採納!