C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
First part: The isprime method uses an if-statement, with a modulo division, to weed out even numbers. It special-cases 2 (a prime).
For, range: This part loops, starting at 3, through all possible factors. It increments by 2, skipping evens.
Square: In the for-loop, we eliminate a possible factor "i" if its square is more than the candidate number. This speeds things up.
Python program that checks for prime numbers
def isprime(candidate):
# No primes are even except 2.
# ... Use modulo division to test for even numbers.
if (candidate % 2) == 0:
if candidate == 2:
return True
else:
return False
# Loop over numbers incrementing by 2 to the number.
for i in range(3, candidate, 2):
# No prime can be more than the square root.
if (i * i) > candidate:
break;
# See if the number is evenly divisible.
if (candidate % i) == 0:
return False
# The candidate is a prime unless it is 1.
return candidate != 1
# Test for primes in first 100 numbers.
for test in range(0, 100):
if isprime(test):
print(test)
# Test for primes in another range.
for test in range(10000, 10100):
if isprime(test):
print(test)
Output
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
10007
10009
10037
10039
10061
10067
10069
10079
10091
10093
10099
Tip: Memoization is a good optimization to apply to a method like isprime above.
Also: Another option is to generate a list or dictionary of known primes and reuse it.