2013-11-26 44 views
2

我需要的是顯示少於N個不能被2,3或5分割的整數數量。我設法得到數字列表小於N並且不能被2,3或5整除,但我不能爲了我的生活而讓Python實際計算有多少整數。 我至今是計算一個字符串中有多少個單獨的整數,Python 3

N = int(input("\nPlease input a Number ")) 
if N < 0: 
    print("\nThere are no answers") 
else: 
    for a in range(1,N+1,2): 
     if a%3 !=0: 
      if a%5 !=0: 
+0

您可以保存注意到計數他們都存在是長度爲30(2 * 3 * 5)的重複模式 –

回答

2

試試這個:

N = 20 

counter = 0 
for a in range(1, N): 
    if a%2 and a%3 and a%5: 
     counter += 1 

結果將在counter在循環的結束。或爲發燒友版,改編自@ iCodez的回答是:

sum(1 for x in range(1, N) if all((x%2, x%3, x%5))) 
=> 6 
+2

此外,它有點棘手,但如果總結'布爾值',它們將轉換爲0或1。所以這將起作用:'對於範圍(1,N)中的x,sum(all(x%2,x%3,x%5))' – steveha

1

你試過聲明全局變量和增加呢?

i = 0 

... if a % 5 != 0: 
     i += 1 

print i 
+1

'int i'不是正確的方式來聲明全局python變量... – mgilson

+0

mgilson:對,抱歉,謝謝! – creichen

+0

想出了一個數字列表,其中最後一個數字是多少個整數,但我可能自己做錯了 – Foflo

1

這可以很容易做到用一個list comprehensionall,並len

>>> num = int(input(':')) 
:20 
>>> [x for x in range(num) if all((x%2, x%3, x%5))] 
[1, 7, 11, 13, 17, 19] 
>>> len([x for x in range(num) if all((x%2, x%3, x%5))]) 
6 
>>> 
+0

O親愛的。 OP確實說過**不可分割。你是對的。 – mgilson

相關問題