Forums: » Register « |  Free Tools |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support |

New Free Tools on Dev Shed!

#1
July 8th, 2003, 11:20 PM
 wannabe
=) wannabe?

Join Date: Jul 2002
Location: florida
Posts: 2,153
Time spent in forums: 21 h 58 m 25 sec
Reputation Power: 14
syntax thingy x % 2 != 0 amd x % 3 != 0

Code:
```
def prms(x):
return x % 2 != 0 and x % 3 != 0
r = filter(prms,range(2,25))
print r
```

that'll return prime numbers from 2 to 25.

but i dont understand this line

return x % 2 != 0 and x % 3 != 0

is 0 flase in this case? what does the % sign mean.

thank you

#2
July 9th, 2003, 12:01 AM
 joebonanno
Junior Member

Join Date: Jul 2003
Location: Los Angeles
Posts: 6
Time spent in forums: < 1 sec
Reputation Power: 0
Someone else may give you a more complete answer, but I believe the line is testing for remainders in the division of x by 2 and 3. If the remainder for either division is 0 then the number cannot be prime.

#3
July 9th, 2003, 01:05 AM
 wannabe
=) wannabe?

Join Date: Jul 2002
Location: florida
Posts: 2,153
Time spent in forums: 21 h 58 m 25 sec
Reputation Power: 14
remainder is 0? i dont get that.

#4
July 9th, 2003, 01:34 AM
 joebonanno
Junior Member

Join Date: Jul 2003
Location: Los Angeles
Posts: 6
Time spent in forums: < 1 sec
Reputation Power: 0
It's so simple, you will be wacking yourself on the head.

x % 2 #returns remainder of x / 2.

Prime numbers, by definition, are only divisible by 1 and themselves (duh, right?), so if "x" is evenly divisible by 2 and/or 3 then it cannot be prime and is not passed to "r"

#5
July 9th, 2003, 12:41 PM
 wannabe
=) wannabe?

Join Date: Jul 2002
Location: florida
Posts: 2,153
Time spent in forums: 21 h 58 m 25 sec
Reputation Power: 14
=) i figured that part out. i just dont get the syntax.

i dont get the % and != 0 parts

#6
July 9th, 2003, 01:47 PM
 netytan
Hello World :)

Join Date: Mar 2003
Location: Hull, UK
Posts: 2,537
Time spent in forums: 1 Week 2 Days 18 h 17 m 47 sec
Reputation Power: 68
I've never seen anything like this before, it looks like an if-return combination. where did you see this?

% is a mathimatical operator, i dont really know how to describe it but i've used it in PHP, Perl and Python when working on the web to create alternate row colors. you'd do a loop and check the iterator number to see if it % 2.

!= 0 means if whatever is not equal to 0 (also faulse).

Hope this helps, it really is a strance bit of code i hae to say. Wasn't awar this was even possible but

Mark.

#7
July 9th, 2003, 02:08 PM
 damonbrinkley
Contributing User

Join Date: Aug 2002
Location: NC, USA
Posts: 364
Time spent in forums: 26 m 21 sec
Reputation Power: 12
% is the modulus operator. It returns the remainder of two numbers when one is divided by the other. For Example. 7/3 is 2 with a remainder of 1. So if you said x = (7/3) then x would be equal to 2, it drops the remainder. To find the remainder you would say 7%3 which is 1 because the remainder of 7/3 is 1. So, y = 7%3 would set y equal to 1.

#8
July 9th, 2003, 03:22 PM
 netytan
Hello World :)

Join Date: Mar 2003
Location: Hull, UK
Posts: 2,537
Time spent in forums: 1 Week 2 Days 18 h 17 m 47 sec
Reputation Power: 68
Thanks a lot damon, good to know .

Mark.

#9
July 9th, 2003, 04:44 PM
 wannabe
=) wannabe?

Join Date: Jul 2002
Location: florida
Posts: 2,153
Time spent in forums: 21 h 58 m 25 sec
Reputation Power: 14
ooh. so as long as the remainder is not 0 the number is prime. damn!. thanks a lot =)

i saw that here http://www.python.org/doc/current/tut/node7.html

#10
July 9th, 2003, 05:44 PM
 netytan
Hello World :)

Join Date: Mar 2003
Location: Hull, UK
Posts: 2,537
Time spent in forums: 1 Week 2 Days 18 h 17 m 47 sec
Reputation Power: 68
interesting, thanks for the info.

#11
July 10th, 2003, 07:24 PM
 inkedmn
Tattooed Python-Lovin' Freak-Boy

Join Date: Dec 2001
Location: orange county, CA
Posts: 16
Time spent in forums: < 1 sec
Reputation Power: 0
this line
Code:
`return x % 2 != 0 and x % 3 != 0`

will return 1 if both expressions evaluate to true, or 0 otherwise (python 2.2 uses 1 and 0 for booleans, 2.3 uses the words True or False)

#12
July 22nd, 2003, 04:53 AM
 percivall
Contributing User

Join Date: Jul 2003
Posts: 133
Time spent in forums: < 1 sec
Reputation Power: 11
Just remember, using
Code:
`x%2 != 0 and x %3 !=0`
to see if x is a prime number will only work up to, and not including, 25.

Last edited by percivall : July 22nd, 2003 at 05:00 AM.

#13
July 22nd, 2003, 01:29 PM
 wannabe
=) wannabe?

Join Date: Jul 2002
Location: florida
Posts: 2,153
Time spent in forums: 21 h 58 m 25 sec
Reputation Power: 14
why?

#14
July 22nd, 2003, 01:57 PM
 karsh44
Just another guy

Join Date: Jun 2003
Location: Wisconsin
Posts: 2,953
Time spent in forums: 2 Weeks 11 h 52 m 38 sec
Reputation Power: 261
Once you reach 25, there are more numbers (factors) to consider in determining if a number is prime.

ie- 25/2 != 0 and 25/3 != 0, but 25/5 == 0, so 25 is not prime, even though it fits the criteria of that line of code. Below 25, all the non-prime numbers are either even (divisible by 2) or divisible by 3, so that code works.

#15
July 22nd, 2003, 02:22 PM
 wannabe
=) wannabe?

Join Date: Jul 2002
Location: florida
Posts: 2,153
Time spent in forums: 21 h 58 m 25 sec
Reputation Power: 14
oh. they never explained that

thanks for pointing that out.

 Viewing: Dev Shed Forums > Programming Languages > Python Programming > syntax thingy x % 2 != 0 amd x % 3 != 0