一.法一:
思路:列表的遍历,python中True和False的应用
#法一
N = int(input("请输入灯的个数和轮数,且为一个值"))
a = []
#创建空列表
for _ in range(N):a.append(None)#增添元素
#第一个人把灯都打开,所以我给他列表中都给了1,因为1为真
#到时候打印的时候,会打印1所在的位置
for element in range (0,N):a[element] =True
#j代表的是人数
j =2
#从第二个人开始
while(j<=N):#注意列表的下标是从0开始的#这里的i是从1开始的,也就是访问列表中的第二个元素#因为接下来不论如何第一个灯都是亮的,所以不用再访问列表中的第一个元素了for element in range(1,N):if(element % j ==0):a[element]= not a[element]j+=1
#判断位置
for element in range(1,N):if(a[element]==True):#使print函数不换行输出print(element,end=" ")
二.法二:
找规律
当N=5时,输出的是1,4。
当N=10时,输出的是1,4,9.
当N=20时,输出的时1,4,9,16.
相信大家已经找到规律了,输出的是n的平方
代码如下
N=int(input("请您输入一个N的值"))
i=1
while(i*i<=N):print(i*i,end=" ")i+=1