kinuthia muchane wrote:
On Mon, 2008-05-12 at 14:08 -0400, "Simón A. Ruiz" wrote:
For each of those numbers, it checks to see if any number between 2 and
i is divisible into i. If it finds anything, we know it's not a prime,
and so it breaks out of that second loop without completing it, which
means the else block isn't executed.
This is where I am getting lost. When the variable 'number' is 3, it
means that in that instance the inner 'for' statement will be 'for j in
range(2,3)', hmmm which means that we will be dividing each element by 2
in the first 'for' statement and checking whether it is true , no? But
2%2 is zero, so, in my warped logic, the inner 'for' loop should break
and the else clause will not execute!
When i is 3, then we'll only check (2 % 3 == 0) which is False, so the
loop ends unbroken and runs the else clause letting us know that 3 is
indeed a prime number.
Never will we check (2 % 2 == 0).
When i is 2, range(2,2) returns [], so the loop ends unbroken (without
starting) and runs the else clause.
If it can't find anything that i is divisible by, then that inside for
loop finishes without breaking, we know that i is a prime number, and
the "else" clause is executed.
This is where it gets even more interesting for me. Wont 'i' in one
instance be 8, so at that particular moment there will be a 7 in the
inner 'for' loop which will be divisible by one of our 'prime' numbers
ie 7?! I know I am wrong but for some reason I cannot see the light! :-)
Don't worry about it, you're doing fine.
Remember, when you're most confused you're most ready to learn
something. :-D
Ok, so when i is 8, we check:
is (8 % 2 == 0)? True. Break!
So, we've broken out of the inner loop and thus ignore the else
statement. We know 8 is not a prime number.
Now, for a prime. When i is 7, we check:
is (7 % 2 == 0)? False. Next!
is (7 % 3 == 0)? False. Next!
is (7 % 4 == 0)? False. Next!
is (7 % 5 == 0)? False. Next!
is (7 % 6 == 0)? False. Next!
So, we've finished the inner loop without breaking, so we now run the
else clause:
is a prime number 7
Does this help at all?
Hope this finds you all having a beautiful day!
Simón
_______________________________________________
Tutor maillist - Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor