[Tutor] primality testing

Zak Arntson zak@harlekin-maus.com
Fri May 9 16:59:01 2003


> On Fri, 9 May 2003, Peter Jakubowicz wrote:
>
>> I've written a small program to test whether a number is prime. But in
>> the back of my mind, I feel it should be simpler and shorter. Can
>> anyone advise. Thanks.
>>
>> from math import sqrt
>>
>> def prime(n):
>>      factor = 0
>>      for i in range(2, sqrt(n) + 1):
>>          if n % i == 0:
>>              factor = factor + 1
>>              break
>>      if factor == 0:
>>          print "Prime"
>>      else:
>>          print "Composite"

Okay, here's an answer that isn't silly. And I've been looking for an
excuse to learn how lambda functions work. :)

def prime (n):
	if 0 not in map (lambda a: n % a, range (2, math.sqrt (n) + 1)):
		return 'p'
	return 'c'

-- 
Zak Arntson
www.harlekin-maus.com - Games - Lots of 'em