Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 17 additions & 36 deletions PrimeNumberFinder/main.py
Original file line number Diff line number Diff line change
@@ -1,39 +1,20 @@
# Prime Number Finder.
# It uses the algorithm "Sieve of Eratosthenes" to find all prime numbers
# smaller or equal to a given number n.
# Read more: https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
num = int(input("Enter number:"))

__author__ = 'codinglukas'
# To take input from the user


def compute_primes(n):
"""
First we create a boolean array of length n and all entries
are set to true. In the end the i-th entry will be true
if and only if i is a prime number.
:param n:
:return prime numbers <= n:
"""
primes = [True for i in range(n + 1)]
p = 2
while p * p <= n:
# If primes[p] is not changed, then it is a prime
if primes[p]:
# Update all multiples of p too
for i in range(p * 2, n + 1, p):
primes[i] = False
p += 1
primes[0] = False
primes[1] = False

result = []
for p in range(n + 1):
if primes[p]:
result.append(p)

return result


if __name__ == '__main__':
n = 30
print(compute_primes(n))
# prime numbers are greater than 1
if num > 1:
# check for factors
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")

# if input number is less than
# or equal to 1, it is not prime
else:
print(num,"is not a prime number")