Python-素数

学的是b站的课,非本人自创代码!

现在来写一篇博客来讲解求素数的方法,[如果讲述不清可以私信问哈,如果讲的不好也可以说,毕竟自己还是入门水平].

目录

一.素数的定义

二.判断素数

1.底层逻辑

2.步骤

3.演示

三.求100以内所有素数

1.底层逻辑

2.步骤

3.演示

四.求自定范围内的所有素数

1.底层逻辑

2.步骤

3.演示

总结


一.素数的定义

素数是指一个大于 1 的自然数,除了 1 和它自身外,不能被其他自然数整除的数。例如,2、3、5、7、11 等都是素数,而 4、6、8、9、10 等都不是素数。

二.判断素数

1.底层逻辑

输入一个数,判断它除了1和自身外还有没有其他的因数.

2.步骤

1.请输入一个数.

# 判断素数
a = int(input("请输入一个数:"))

 2.规定目前因数为0.

# 判断素数
a = int(input("输入一个数:"))
num = 0

3. 规定除数为i.

# 判断素数
a = int(input("输入一个数:"))
num = 0
for i in range(2,a):

 4.判断除后余数是否为0.

# 判断素数
a = int(input("输入一个数:"))
num = 0
for i in range(2,a):
    if a % i == 0:

5. 如果是余数,则因数加1.

# 判断素数
a = int(input("输入一个数:"))
num = 0
for i in range(2,a):
    if a % i == 0:
        num = num +1

6.可以判断除该数不是素数,程序跳出循环.

# 判断素数
a = int(input("输入一个数:"))
num = 0
for i in range(2,a):
    if a % i == 0:
        num = num +1
        break

 7. 只有num=0时,n才是素数.

# 判断素数
a = int(input("输入一个数:"))
num = 0
for i in range(2,a):
    if a % i == 0:
        num = num + 1
        break
if num == 0:
    print("是素数")
else:
    print("是合数")

3.演示

三.求100以内所有素数

1.底层逻辑

因为求100以内,所以要对每个数都进行判断,将上文的输入换成遍历数字就行.

2.步骤

1.遍历2-100所有的数,我们用for…in循环语句.

# 求100以内所有的素数
for n in range(2,100):

2. 接着与上文相同.

# 求100以内所有的素数
for n in range(2,100):
    num = 0
    for i in range(2, n):
        if n % i == 0:
            num = num + 1
            break

3.因为只用输出素数,所以只用写 if语句.

# 求100以内所有的素数
for n in range(2,100):
    num = 0
    for i in range(2, n):
        if n % i == 0:
            num = num + 1
            break
    if num == 0:
        print(n,"是素数")

3.演示

四.求自定范围内的所有素数

1.底层逻辑

将上文的range换成input函数自己输入即可.

2.步骤

1.规定下限.

# 求自定范围内的所有素数
a = int(input("请输入下限:"))

2. 规定下限.

# 求自定范围内的所有素数
a = int(input("请输入下限:"))
b = int(input("请输入上限:"))

3.按照上文补齐语句.

# 求自定范围内的所有素数
a = int(input("请输入下限:"))
b = int(input("请输入上限:"))
for n in range(a,b):
    num = 0
    for i in range(2, n):
        if n % i == 0:
            num = num + 1
            break
    if num == 0 and n != 1:
        print(n,"是素数")

3.演示

总结

在 Python 中判断一个数是否为素数可以使用试除法或优化的试除法。在实际应用中,需要考虑多种情况,如负数、0、1、大数和特殊类型的数。根据不同的需求,可以选择不同的方法来判断素数。同时,素数在密码学、数学计算和数据筛选等领域都有广泛的应用。希望这篇博客对你理解和使用 Python 判断素数有所帮助。

个人认为这些程序的本质不变,举一反三。同志们多多调试,多改错,就会记住语法。有解释的不好的地方多多包涵,谢谢观看!

我也知道自己现在对 Python 的理解可能还只是些皮毛,在学习的过程中,肯定有不少地方理解得还不够准确、不够深入。要是我在这儿讲的这些想法和理解,有啥不对的地方,还请同志们多多包涵呀。我这也是想把自己的学习心得和大家分享分享,说不定还能互相交流交流,让大家都能在学习 Python 的路上走得更顺呢。

好啦,啰啰嗦嗦说了这么多,总之就是谢谢大伙能抽出时间来看我这些碎碎念啦,希望咱们都能在 Python 的学习中收获满满呀!再次谢谢观看!

要在一百以内找到所有的孪生素数对,我们可以采用简单的素数检测方法,并逐一检查每一对相差为2的数字是否都为素数。下面是具体的实现步骤以及完整的Python代码示例: ### 步骤解析 1. 定义一个辅助函数`is_prime()`来判断某个整数是否是素数- 对于小于2的数直接返回False; - 遍历从2到该数开方的所有整数,若能整除则不是素数。 2. 创建一个空列表存储符合条件的孪生素数对。 3. 循环遍历从2开始的一百以内的所有奇数(因为偶数除了2以外都不是素数),对于每一个当前值x, - 如果 x 和 x+2 同时满足`is_prime(x)`和`is_prime(x+2)`条件,则将其加入结果列表中作为一对孪生素数。 4. 打印最终的结果列表即可获得所求的答案。 下面给出完整代码: ```python def is_prime(n): """ 判断输入正整数n是否为质数 """ if n <= 1: return False elif n == 2 or n == 3: return True elif n % 2 == 0: return False else: sqrt_n = int(n**0.5) + 1 for divisor in range(3, sqrt_n, 2): # 只需测试到sqrt(n) if n % divisor == 0: return False return True twin_primes_under_100 = [] for number in range(2, 100-1): # 因为我们考虑number和number+2的关系 if is_prime(number) and is_prime(number + 2): twin_primes_under_100.append((number, number + 2)) print("100以内的孪生素数对:", twin_primes_under_100) ``` 运行上述程序会得到如下输出: ``` 100以内的孪生素数对: [(3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61), (71, 73)] ``` 这表示在一百之内共有八组这样的孪生素数对。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扑克中的黑桃A

感谢您的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值