-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprimes_while_loop.py
More file actions
38 lines (31 loc) · 1.44 KB
/
Copy pathprimes_while_loop.py
File metadata and controls
38 lines (31 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/env python3
'''Prints all the primes numbers up to a value supplied from the user
Note:
A prime number is an integer greater than 1 whose only factors (divisors)
are 1 and the number itself
'''
from custom_modules.get_positive_number_from_user import get_positive_num
from time import clock
print(__doc__) # Program Greeting
# init
current_potential_prime = 2 # Smallest prime
max_value = int(get_positive_num()) # Get positive integer from user
cntr = 0 # Prime accumulator
start_stopwatch = clock() # Start timer
##------- The Algorithm -------- ##
while current_potential_prime <= max_value:
is_prime = True # Provisionally, Assume value is prime
# Try all possible factors from 2 to current_potential_prime - 1
trial_factor = 2 # Track potential factors
while trial_factor < current_potential_prime:
if current_potential_prime % trial_factor == 0:
is_prime = False # Not a factor
break # No need to continue
trial_factor += 1 # Try next potential factor
if is_prime:
print(current_potential_prime, end=' ') # Dispaly the prime number
cntr += 1 # Track total primes found
current_potential_prime += 1 # Try the next potential prime
print() # Move cursor to the next line
stop_stopwatch = clock() - start_stopwatch # Stop timer
print('It takes {0} secs to identify {1} prime numbers'.format(stop_stopwatch, cntr))