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

Reply via email to