Revision: 6985
                            
                                                            
                                    
                                        
Initial Code
                                    
                                    
                                                            
                                    
                                        
Initial URL
                                    
                                    
                                
                                                            
                                    
                                        
Initial Description
                                    
                                    
                                                            
                                    
                                        
Initial Title
                                    
                                    
                                                            
                                    
                                        
Initial Tags
                                    
                                    
                                
                                                            
                                    
                                        
Initial Language
                                    
                                    
                                                    
                        at June 29, 2008 12:58 by Kartoffel
                            
                            Initial Code
# -*- coding: utf-8 -*-
def eratostenes(num, print_nums=False):
    if num < 3:
        raise Exception, 'Number is too small'
    full_nums = range(num)[1:] + [num]
    primes = [False] + [True]*(num - 1)
    for i in range(num):
        if primes[i]:
            if print_nums:
                print full_nums[i]
            inc = full_nums[i]
            cursor = i + inc
            if cursor > num:
                break
            while cursor < num:
                primes[cursor] = False
                cursor += inc
    return [full_nums[j] for j in range(num) if primes[j]]
                                Initial URL
Initial Description
An (probably inefficient) implementation of the Sieve of Eratostenes. The function returns a list containing all the prime numbers between 0 and the number passed to it.
Initial Title
Sieve of Eratostenes
Initial Tags
Initial Language
Python