python - 素数计划:我想知道我成功计划的原因
问题描述
我是一个刚刚开始学习 python 的学生。我正在制作一个程序来打印从 1 到 300 的素数,使用 break 并继续它并且它执行得很好,但我不明白为什么它不打印 1 。如果 range 函数如何工作给定的范围是(a,a)。你可以理解为什么我在看到我的代码后会问这个问题,因为我认为这是它没有在素数程序中打印 1 的原因。
a=range(1,301)
for num in a:
for d in range(2,num+1)
rem=num % d
if(rem==0):
if (d != num ):
break
if (num != d):
continue
print (num, end=' ')
解决方案
让我们看看你的代码
a=range(1,301) # this gives numbers from 1 to 300
for num in a: #assume we are at num =1
for d in range(2,num+1) # in this range fnc we start from 2 till 2 so this loop is not even executed
rem=num % d
if(rem==0):
if (d != num ):
break
if (num != d):
continue
print (num, end=' ')
a=range(1,301)
for num in a:
if num ==1: print (num, end=' ') # 1 is a co prime
for d in range(2,num+1):
rem=num % d
if(rem==0):
if (d != num ):
break
if (num != d):
continue
print (num, end=' ')
(a,b) 的范围函数从 a 到 b 即从 a 开始到 b 的门口(所以 b 不包括在内)
如果你已经在 b for (a,b) where a==b 那么范围函数不会启动
推荐阅读
- postgresql - postgres 11 replication stuck in startup state
- html - Select Pseudo-element (such ::before and ::after ) of element in DOM
- mysql - Select data list from multiple tables
- javascript - React Native Hook in Class converting function to class variable undefined
- c# - Tryin to scale Unity buttons to a certain size range
- python - ScreenGrid on python manim as a not defined name
- c - C Program isn't printing strings properly
- typescript - Reducer A 获取对应于 reducer B 的动作
- python - How do you plot a data frame series that you've used groupby on in pandas / matplotlib?
- c - Valgrind 坚持堆上还有内存,但我正在释放指向我拥有的堆的唯一指针