我的代码是:-
list_1 = [i for i in range(1, 51)]
a=int(input())
list_1.remove(a)
count=0
for i in list_1:
if(i%a==0):
count=count+1
print(count)
但是当输入为12
时输出输出是这样
1
2
3
但是我只需要输出3,所以该怎么做请帮忙
答案 0 :(得分:1)
您可以使用sum
。
sum(x % a == 0 for x in list_1)
自True == 1
和False == 0
起,这等于谓词为真的次数。
答案 1 :(得分:0)
中断if语句并使用结束条件,即i = 50 例如
l=list(range(1,51))
a=int(input())
count=-1
for i in l:
if(i%a==0):
count=count+1
print(count)
答案 2 :(得分:0)
print(len([i for i in list_1 if i%a == 0]))
这将创建一个具有可分割数字的列表,并获取列表的长度。我还要指出,len()是O(1)时间复杂度的函数,这意味着仅发生一个循环-由于列表理解-,并且列表理解帐篷非常快:)