質數(prime number)又稱素數,有無限個。質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數的數稱為質數
基本判斷思路:
在一般領域,對正整數n,如果用2到 之間的所有整數去除,均無法整除,則n為質數。
質數大於等於2 不能被它本身和1以外的數整除
方法1
#求100一下的素數
import datetime
start=datetime.datetime.now()#記錄開始時間
sum=0
for i in range(2,101):
for j in range(2,i):
if i%j==0:
sum+=1
if (sum==0):
print(i)
sum=0
end=datetime.datetime.now()#結束時間
print(end-start)
#方法2
import datetime
start = datetime.datetime.now()#記錄開始時間
# do something
sum=0
for i in range(2,101):
for j in range(2,i):
if i%j==0:
sum=1
break
#採用了break的作用使得**時間短
if (sum==0):
print(i,end=' ')
sum=0
end = datetime.datetime.now()#記錄結束時間
print (end-start)
#方法三
#利用函式
from math import sqrt
defis_prime
(n):
if n == 1:
return
false
for i in range(2, int(sqrt(n))+1):
if n % i == 0:
return
false
return
true
有關問題:
#2百萬一下的素數之和
from math import sqrt
defis_prime
(n):
if n == 1:
return
false
for i in range(2, int(sqrt(n))+1):
if n % i == 0:
return
false
return
true
sum1=0
for i in range(1,2000001):
if(is_prime(i)):
sum1+=i
print(sum1)
關於求乙個正整數的質因數:
#求乙個整數的質因數
deffactor
(n):
m=na=
i=1#從1開始
while(i1):
if(m%i==0):
m//=i
i=2#從2迴圈開始
else:
i+=1
return a
print(factor(600851475143))
'''#方法二,遞迴方法
def factor(n):
m=nglobal a
for i in range(2,m+1):
if(m%i==0):
return factor(m//i)
a=factor(5)
print(a)
在學習中最大的收穫,不僅僅是學到了程式設計的思想,還是有數學的知識。 關於sql語言中的WHERE IN
我現在有乙個int型的陣列 int i new int x x為未知數 我要通過sql語句的where in i陣列裡的所有數 可以通過先將i陣列的數寫到乙個字串中 string str for int i 0 i str str id x tostring trim 然後可以寫到查詢語句中了 st...
關於C語言中的巨集
define pi 3.14 define zhouchang r 2 pi r 定義帶引數的巨集 undef pi 結束巨集 使用 ifdef ifndef else endif執行條件編譯 ifdefine 巨集名稱 語句 else 語句 endif define age 39 int main...
關於C語言中的指標
1 對於已定義的某個變數的讀取 通過該變數來訪問它的值 通過該變數的儲存位置讀取數值 指標 作業系統會將所有的記憶體單元進行編號。關於32位作業系統與64位作業系統支援的最大記憶體。計算機底層使用二進位制進行管理,所以32位作業系統支援2的32次方個編號,即4g的記憶體位址。int a 1 int ...