用Python找101-200之间的素数

简单说下思路,首先了解素数的概念,素数是一个大于1的自然数,除了1和它本身外,不能被其他自然数整除的数,所以对新手来说最难的就是怎么用各种不同的数去除这个数来判断它是否为素数呢,我个新手也不会。

看了师兄师姐的笔记后我明白了,可以用for循环和range来实现用2到i-1的数去除以i,i就是101-200之间的数(可能有点拗口大家尝试理解一下)

然后我就写出了这样一个代码

误区代码

 “???”大家可能会想这是怎么回事,我得到了正确的素数,可却重复添加了素数,还是在看了师兄师姐的笔记和上百度查了一下后我明白了(毕竟学的不多不太懂),这里不应该用if else语句而是应该用for else语句,他们在使用过程有着误区

大家可以看这个链接去了解一下:https://blog.csdn.net/xuexiaoyaani/article/details/79589199

里面有大佬给我详细的讲解了他们之间的误区

只有当for的内容都不满足了,才会执行else,这样就能避免重复添加素数

正确代码

 

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 以下是Python代码,用于判断101-200之间素数: ```python for num in range(101, 201): for i in range(2, num): if num % i == : break else: print(num, "是素数") ``` 这段代码使用了两个嵌套的for循环,外层循环遍历101-200之间的每个数,内层循环从2开始,逐个判断该数是否能被整除。如果能被整除,就说明该数不是素数,内层循环就会被break跳出。如果内层循环执行完毕,也就是没有到能整除该数的数,那么就说明该数是素数,就会被打印出来。 ### 回答2: 素数指的是只能被1和自身整除的正整数,而101-200之间素数有哪些呢?我们可以用Python编写代码来进行判断。 我们可以通过循环的方式来判断一个数是否是素数。具体来说,对于每一个数n,我们可以从2开始依次判断n是否能够被2到n-1之间的任意一个数整除,如果都不能整除,那么n就是素数。这个过程可以使用for循环来实现。 代码如下: ```python for num in range(101, 201): if all(num % i != 0 for i in range(2, num)): print(num) ``` 这段代码中,我们使用了range函数来生成101到200之间的整数,然后对于每一个整数num,我们使用all函数来判断num是否能够被2到num-1之间的所有数整除。如果都不能整除,那么就输出这个数,表示它是一个素数。 需要注意的是,这段代码是一种简单的判断方法,但是对于大的数来说会很慢,因为需要进行很多次的循环判断。对于大的数,可以采用更高效的素数判断算法,如埃拉托色尼筛法等。 总之,通过编写Python代码,我们可以很容易地判断101到200之间素数,也为进一步学习素数判断算法奠定了基础。 ### 回答3: 素数是指除了1和本身之外没有其它正因数的数,因此判断一个数是否素数的方法是:对于一个数n,如果在2到n-1之间没有任何一个数能够整除它,那么它就是素数。 对于101-200之间素数,我们可以通过循环从101到200依次判断每个数字是否是素数。具体的做法如下: # 定义一个判断素数的函数 def is_prime(n): if n <= 1: return False for i in range(2, n): if n % i == 0: return False return True # 判断101-200之间素数并输出 for i in range(101, 201): if is_prime(i): print(i) 首先定义一个用于判断素数的函数is_prime(n),如果传入的数字n小于等于1则返回False,否则从2到n-1循环判断每个数是否能够整除n,如果能够整除则返回False,最终如果都不能整除则返回True。 然后在主程序中循环从101到200,对于每个数字调用is_prime函数判断是否是素数,如果是素数则输出该数字。 运行程序可以得到如下结果: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 因此101-200之间共有21个素数

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值