如何计算给定范围内的数字?

时间:2019-03-29 07:24:27

标签: python loops math

所以我写了一个代码,列出了所有不能被2和3整除的数字。现在,我想知道这些数字中有多少在1000愤怒。在进行谷歌搜索之后,我什么都没找到帮助我处理我的案件。

你们能给我一些提示吗?会很感激的!

for i in range(1, 1000):

    if i%2 != 0 and i%3 != 0:

        print(i)

5 个答案:

答案 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)

您可以使其变得更简单,更通用。您可以看到,在每个间隔的两个数字的最小公倍数的大小中,搜索到的元素数是相同的。因此,您只需要在第一个间隔中进行计数,并且必须对其进行倍数计算,然后在进行计算之后,就可以计算出范围百分比最小公倍数中的数字。我认为它必须正常运行,但是请告诉我您是否遇到错误。