diff --git a/series_mod/example.py b/series_mod/example.py old mode 100644 new mode 100755 diff --git a/series_mod/series.py b/series_mod/series.py old mode 100644 new mode 100755 diff --git a/sieve_gen/example.py b/sieve_gen/example.py new file mode 100644 index 0000000..3beadb4 --- /dev/null +++ b/sieve_gen/example.py @@ -0,0 +1,8 @@ +#Yevgeny Khessin +#A39652176 +#HW1 +# an implementation of Eratosthenes' Sieve using a Python generator +import sieve +#create zip of 1 through 4, and run sieve on it, printing results +for n, i in zip(range(4), sieve.sieve()): + print i \ No newline at end of file diff --git a/sieve_gen/sieve.py b/sieve_gen/sieve.py new file mode 100644 index 0000000..9352ef7 --- /dev/null +++ b/sieve_gen/sieve.py @@ -0,0 +1,20 @@ +#Yevgeny Khessin +#A39652176 +#HW1 +# an implementation of Eratosthenes' Sieve using a Python generator + +def primecheck(primes, n): #function defition of checking if number is prime + for i in primes: #for all numbers in primes list + if n % i == 0: #if modulus is 0 + return False #return false + return True #if not, return true + +def sieve(): #sieve function + listprimes = [2] #list of primes starting at 2 + counter = listprimes[-1] + 1 #go one back and add 1 + while 1: #endless while loop + if primecheck(listprimes, counter): #check if number is prime + listprimes.append(counter) #add it to list + yield counter #return the value + + counter += 1 #increment counter \ No newline at end of file diff --git a/sieve_gen/sieve.pyc b/sieve_gen/sieve.pyc new file mode 100644 index 0000000..711aac8 Binary files /dev/null and b/sieve_gen/sieve.pyc differ diff --git a/sieve_gen/test1.py b/sieve_gen/test1.py new file mode 100644 index 0000000..74ca799 --- /dev/null +++ b/sieve_gen/test1.py @@ -0,0 +1,17 @@ +#Yevgeny Khessin +#A39652176 +#HW1 +#test1 +import sieve +#run once to check if value produced is 3. +def test1(): + s = sieve.sieve() #make a sieve object from file sieve + i = iter(s) #make iterator + val=i.next() #run iterator once, put value in val + assert val == 3 #check if value is 3. if not 3, fail. + print "Value should be 3, actual value is:" + print val + + +#call test +test1() \ No newline at end of file diff --git a/sieve_gen/test2.py b/sieve_gen/test2.py new file mode 100644 index 0000000..2181197 --- /dev/null +++ b/sieve_gen/test2.py @@ -0,0 +1,19 @@ +#Yevgeny Khessin +#A39652176 +#HW1 +#test1 +import sieve +#run 3 times to check if value is 7 +def test2(): + s = sieve.sieve() #make a sieve object from file sieve + i = iter(s) #make iterator + val=i.next() #run iterator once, put value in val + val=i.next() #run iterator once, put value in val + val=i.next() #run iterator once, put value in val + + assert val == 7 #check if value is 7. if not 7, fail. + print "Value should be 7, actual value is:" + print val + +#call test +test2() \ No newline at end of file diff --git a/sieve_gen/test3.py b/sieve_gen/test3.py new file mode 100644 index 0000000..bd68376 --- /dev/null +++ b/sieve_gen/test3.py @@ -0,0 +1,18 @@ +#Yevgeny Khessin +#A39652176 +#HW1 +#test3 +import sieve +#run once to make sure iterator is not at 2 +def test3(): + s = sieve.sieve() #make a sieve object from file sieve + i = iter(s) #make iterator + val = i.next() #run iterator once, put value in val + + assert val != 2 #check if value not 2 + print "Value should not be 2, actual value is:" + print val + + +#call test3 +test3() \ No newline at end of file diff --git a/sieve_itr/example.py b/sieve_itr/example.py new file mode 100644 index 0000000..a3c66eb --- /dev/null +++ b/sieve_itr/example.py @@ -0,0 +1,8 @@ +#Yevgeny Khessin +#A39652176 +#HW1 +# an implementation of Eratosthenes' Sieve using a Python iterator +import sieve +#create zip of 1 through 4, and run sieve on it, printing results +for n, i in zip(range(4), sieve.sieve()): + print i \ No newline at end of file diff --git a/sieve_itr/sieve.py b/sieve_itr/sieve.py new file mode 100644 index 0000000..c23bf19 --- /dev/null +++ b/sieve_itr/sieve.py @@ -0,0 +1,31 @@ +#Yevgeny Khessin +#A39652176 +#HW1 +# an implementation of Eratosthenes' Sieve using a Python iterator + +def primecheck(primes, n): #function defition of checking if number is prime + for i in primes: #for all numbers in primes list + if n % i == 0: #if modulus is 0 + return False #return false + return True #if not, return true + +class sieve(object): + def __init__(self): #initializtion + self.listprimes = [2] #list of primes starting at 2 + + def __iter__(self): #iterator + return self #returns itself + + def next(self): #iterator next + counter = self.listprimes[-1] + 1 #go back 1 and add 1 + while 1: #endless while loop + if primecheck(self.listprimes, counter): #if it is a prime number + self.listprimes.append(counter) #add it to the list + return counter #return the value + counter += 1 #increment counter + + + + + + diff --git a/sieve_itr/sieve.pyc b/sieve_itr/sieve.pyc new file mode 100644 index 0000000..a6212a0 Binary files /dev/null and b/sieve_itr/sieve.pyc differ diff --git a/sieve_itr/test1.py b/sieve_itr/test1.py new file mode 100644 index 0000000..74ca799 --- /dev/null +++ b/sieve_itr/test1.py @@ -0,0 +1,17 @@ +#Yevgeny Khessin +#A39652176 +#HW1 +#test1 +import sieve +#run once to check if value produced is 3. +def test1(): + s = sieve.sieve() #make a sieve object from file sieve + i = iter(s) #make iterator + val=i.next() #run iterator once, put value in val + assert val == 3 #check if value is 3. if not 3, fail. + print "Value should be 3, actual value is:" + print val + + +#call test +test1() \ No newline at end of file diff --git a/sieve_itr/test2.py b/sieve_itr/test2.py new file mode 100644 index 0000000..2181197 --- /dev/null +++ b/sieve_itr/test2.py @@ -0,0 +1,19 @@ +#Yevgeny Khessin +#A39652176 +#HW1 +#test1 +import sieve +#run 3 times to check if value is 7 +def test2(): + s = sieve.sieve() #make a sieve object from file sieve + i = iter(s) #make iterator + val=i.next() #run iterator once, put value in val + val=i.next() #run iterator once, put value in val + val=i.next() #run iterator once, put value in val + + assert val == 7 #check if value is 7. if not 7, fail. + print "Value should be 7, actual value is:" + print val + +#call test +test2() \ No newline at end of file diff --git a/sieve_itr/test3.py b/sieve_itr/test3.py new file mode 100644 index 0000000..bd68376 --- /dev/null +++ b/sieve_itr/test3.py @@ -0,0 +1,18 @@ +#Yevgeny Khessin +#A39652176 +#HW1 +#test3 +import sieve +#run once to make sure iterator is not at 2 +def test3(): + s = sieve.sieve() #make a sieve object from file sieve + i = iter(s) #make iterator + val = i.next() #run iterator once, put value in val + + assert val != 2 #check if value not 2 + print "Value should not be 2, actual value is:" + print val + + +#call test3 +test3() \ No newline at end of file diff --git a/sieve_mod/example.py b/sieve_mod/example.py new file mode 100644 index 0000000..a1bba88 --- /dev/null +++ b/sieve_mod/example.py @@ -0,0 +1,13 @@ +#Yevgeny Khessin +#A39652176 +#HW1 + +import sieve +#run 6 times +print sieve.next() +print sieve.next() +print sieve.next() +print sieve.next() +print sieve.next() +print sieve.next() + diff --git a/sieve_mod/sieve.py b/sieve_mod/sieve.py new file mode 100644 index 0000000..3166669 --- /dev/null +++ b/sieve_mod/sieve.py @@ -0,0 +1,21 @@ +#Yevgeny Khessin +#A39652176 +#HW1 +# an implementation of Eratosthenes' Sieve using a a Python module + +listprimes = [2] + +def primecheck(primes, n): #function defition of checking if number is prime + for i in primes: #for all numbers in primes list + if n % i == 0: #if modulus is 0 + return False #return false + return True #if not, return true + +def next(): #next definition + counter = listprimes[-1] + 1 # + while 1: + if primecheck(listprimes, counter): + listprimes.append(counter) + return counter + + counter += 1 diff --git a/sieve_mod/sieve.pyc b/sieve_mod/sieve.pyc new file mode 100644 index 0000000..2985750 Binary files /dev/null and b/sieve_mod/sieve.pyc differ