defisPrime(a):for i inrange(2,a):if a%2==0:returnFalsereturnTrueprint(isPrime(33))
埃氏筛法
defelimate(a):#利用埃氏筛法解决素数选择问题
result =[]
one=[]for i inrange(2,a):
result.append(i)for i inrange(2,int(a**0.5)):if(isPrime(i)):
one.append(i)#找出根号内的素数for i in one:for j in result:if j % i ==0:
result.remove(j)return[2,3]+result
print(elimate(20))#[2, 3, 5, 7, 11, 13, 17, 19]
质因数分解
defdecomposition(a):
result={}for i inrange(2,a):while(a%i==0):if i notin result.keys():
result[i]=1else:
result[i]+=1
a/=i
return result
print(decomposition(32))