所以我写了一个代码,列出了所有不能被2和3整除的数字。现在,我想知道这些数字中有多少在1000愤怒。在进行谷歌搜索之后,我什么都没找到帮助我处理我的案件。
你们能给我一些提示吗?会很感激的!
for i in range(1, 1000):
if i%2 != 0 and i%3 != 0:
print(i)
答案 0 :(得分:2)
该范围已定义,请放入count
count = 0
for i in range(1, 1000):
if i%2 != 0 and i%3 != 0:
count += 1
print("The number is {}".format(i))
print("Count: {}".format(count))
输出:
The number is 1
The number is 5
The number is 7
The number is 11
The number is 13
.
.
.
The number is 991
The number is 995
The number is 997
Count: 333
编辑:
单线
print("Count: {}".format(sum(1 for i in range(1000) if i%2 != 0 and i%3 != 0)))
答案 1 :(得分:1)
count=0
for i in range(1, 1000):
if i%2 != 0 and i%3 != 0:
count=count+1
print(i)
只需在IF块中计数
答案 2 :(得分:1)
有1000/2 = 500个可被2整除的数和1000/3 = 333可被3整除的数。其中,6的倍数出现两次,并且有1000/6 = 165个。
因此1000-(500 + 333-166)= 333。
高达10亿美元,您将拥有1,000,000,000,000,000,000-(500,000,000,000,000,000-333,333,333,333,333,333-166,666,666,666,666,666)= 333,333,333,333,333,333,这只是三分之一。
答案 3 :(得分:0)
最简单的解决方案是将count
变量放入循环中并对其进行递增。
count = 0
for i in range(1, 1000):
if i%2 != 0 and i%3 != 0:
count+=1
print(i)
print(count)
另一个解决方案可能是:
count = len([x for x in range(1,1000) if x%2!=0 and x%3!=0])
答案 4 :(得分:0)
def number_of_not_divisible(a, b, myrange):
result = 0
least_common_multiple = a * b
while myrange % least_common_multiple != 0:
if myrange % a != 0 and myrange % b != 0:
result += 1
myrange -= 1
partial_result_inside_one_range = 0
for i in range(least_common_multiple):
if i % a != 0 and i % b != 0:
partial_result_inside_one_range += 1
result += partial_result_inside_one_range * (myrange / least_common_multiple)
print(result)
不可分割数(2,3,1000)
您可以使其变得更简单,更通用。您可以看到,在每个间隔的两个数字的最小公倍数的大小中,搜索到的元素数是相同的。因此,您只需要在第一个间隔中进行计数,并且必须对其进行倍数计算,然后在进行计算之后,就可以计算出范围百分比最小公倍数中的数字。我认为它必须正常运行,但是请告诉我您是否遇到错误。