Was ich brauche, ist zu zeigen, wie viele ganze Zahlen, die kleiner als N sind, nicht durch 2,3 oder 5 teilbar sind. Ich habe es geschafft, die Liste der Zahlen zu erhalten, die kleiner als N sind und nicht durch 2,3 oder 5 teilbar sind, aber Ich kann Python für mein ganzes Leben nicht dazu bringen, tatsächlich zu zählen, wie viele ganze Zahlen es gibt. Was ich bisher habe ist

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:
2
Foflo 27 Nov. 2013 im 00:58

3 Antworten

Beste Antwort

Versuche dies:

N = 20

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

Das Ergebnis befindet sich in counter am Ende der Schleife. Oder für eine schickere Version, angepasst an die Antwort von @ iCodez:

sum(1 for x in range(1, N) if all((x%2, x%3, x%5)))
=> 6
2
Óscar López 26 Nov. 2013 im 21:41

Haben Sie versucht, eine globale Variable zu deklarieren und zu erhöhen?

i = 0

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

print i
1
creichen 26 Nov. 2013 im 21:02

Dies kann ganz einfach mit einem Listenverständnis, all und 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
>>>
1
26 Nov. 2013 im 21:13