我的代码是:-
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,所以如何做到这一点,请帮忙
您可以使用sum
.
sum(x % a == 0 for x in list_1)
由于True == 1
和False == 0
,这等于谓词为真的次数。
print(len([i for i in list_1 if i%a == 0]))
这将创建一个包含可分割数字的列表,并获取列表的长度。我还要指出 len(( 是 O(1( 时间复杂度的函数,这意味着只发生一个循环 - 因为列表理解 - 并且列表理解帐篷非常快:)
打破 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)