I am creating a simple program that will do three things: add up the prime numbers found within the range set by the user, print out the entire list of prime numbers, and print how many prime numbers were found.
# Starting number lower = int(input("Enter lower range: ")) # Final number upper = int(input("Enter upper range: ")) print "Running..." # Variables to keep track of progress total = 0 list_of_primes =  # Loop to see whether the number is prime or not for num in range(lower, upper + 1): if num > 1: for i in range(2, num): if (num % i) == 0: break else: total += num list_of_primes.append(num) if num == 2: total += num list_of_primes.append(num) # Print out the results print "Finished..." print "Sum of prime numbers:", total print "List of prime numbers:", list_of_primes print "Number of prime numbers:", len(list_of_primes)
The time waiting can be very long, especially with large numbers (max is around 3,000,000,000). Is there any way to shorten the time needed to run the program (thus improve efficiency) and make the code more elegant and readable?
Note: Negative numbers will work. No errors will be thrown.
EDIT: I have added three more lines of code, which helps to reduce time spent by removing all even numbers immediately except 2, which actually is prime.