素数python 1-100以内 18-25种

第十八种:

def odd_iter():
    n = 1
    while True:
        n = n+2
        yield n
def not_divisible(n):
    return lambda x: x % n > 0
def primes():
    yield 2
    it = odd_iter() 
    while True:
        n = next(it)
        yield n
        it = filter(not_divisible(n),it) 
for n in primes():
    if n < 100:
        print(n,end=" ")
    else:
        break

第十九种

from math import sqrt
def is_prime(n):
    if n == 1:
        return False
    for i in range(2, int(sqrt(n))+1):
        if n % i == 0:
            return False
    return True
count = 0
for i in range(1,100):
    if is_prime(i):
        count = count + 1
        print(i,end=" ")

第二十种

##第二十种
import math
def getPrime(maxNum):
    primeList = []
    for x in range(2, maxNum+1):
        x_sqrt = math.sqrt(x)
        for prime in primeList:
            if prime > x_sqrt:
                primeList.append(x)
                break
            if x % prime == 0:
                break
        else:
            primeList.append(x)
    return primeList
print(getPrime(100))

##第二十一种
i = 2
prime_number = []
while i < 100:
    j = 2
    while j <= i:
        if i == j:
            prime_number.append(i)
            # print(i)
        if i % j == 0:
            break
        j += 1
    i += 1
print(prime_number)

 

##第二十二种
alist=[2,3]
for i in range(5,100):
    num=i**0.5
    num=int(num)
    for m in range(2,num+1):
        if i%m==0:
            break
        elif m==num:
            alist.append(i)
        else:
            continue
print(alist)

##第二十三种
result = [(y, [x for x in range(2, y) if y % x == 0]) for y in range(2, 100)]
print([num[0] for num in result if len(num[1]) == 0])

 

##第二十四种
from math import sqrt
count = 0
for n in range(2,100):
    sushu = True 
    for i in range(2, int(sqrt(n) + 1)):
        if n % i == 0:
            sushu = False 
            break
    if n == 1:
        print('{}既不是素数,也不是合数'.format(n))
    elif sushu == True:
        print(n, end=' ') 

 

##第二十五种
sushu = [2]
for i in range(2, 101):
    for temp in range(2, i):
        if i % temp == 0:
            break
            print('i=', i, 'temp=', temp)
        elif temp == i-1:
            sushu.append(i)
print(sushu)

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值