|
| 1 | +def SieveOfEratosthenes(range_to): |
1 | 2 |
|
| 3 | + # creating a boolean array first |
| 4 | + prime = [True for i in range(range_to + 1)] |
| 5 | + p = 2 |
| 6 | + while (p * p <= range_to): |
| 7 | + |
| 8 | + # If prime[p] is not changed, then it is a prime |
| 9 | + if (prime[p] == True): |
| 10 | + |
| 11 | + # Update all multiples of p |
| 12 | + for i in range(p * 2, range_to + 1, p): |
| 13 | + prime[i] = False |
| 14 | + p += 1 |
| 15 | + print([p for p in range(2, range_to) if prime[p]]) |
2 | 16 |
|
3 | 17 | def prime(range_from, range_to):
|
4 | 18 |
|
5 |
| - allList = [x for x in range(2, int(range_to)+1)] |
| 19 | + allList = [x for x in range(2, range_to + 1)] |
6 | 20 |
|
7 | 21 | ptr = 0
|
8 | 22 | while True:
|
9 | 23 | i = 2
|
10 |
| - while i * allList[ptr] <= int(range_to): |
| 24 | + while i * allList[ptr] <= range_to: |
11 | 25 | if i*allList[ptr] in allList:
|
12 | 26 | allList.remove(i*allList[ptr])
|
13 | 27 | i += 1
|
14 | 28 | ptr += 1
|
15 |
| - if allList[ptr] ** 2 > int(range_to): |
| 29 | + if allList[ptr] ** 2 > range_to: |
16 | 30 | break
|
17 | 31 |
|
18 | 32 |
|
19 |
| - primeList = [x for x in allList if x > int(range_from)] |
| 33 | + primeList = [x for x in allList if x > range_from] |
20 | 34 | print("Prime List Between ", range_from, " and ", range_to, " is")
|
21 | 35 | print(primeList)
|
22 | 36 |
|
23 | 37 |
|
24 | 38 |
|
25 | 39 | if __name__ == "__main__":
|
26 | 40 | print("Enter the range of number")
|
27 |
| - range_from = input("From: ") |
28 |
| - range_to = input("To: ") |
| 41 | + range_from = int(input("From: ")) |
| 42 | + range_to = int(input("To: ")) |
29 | 43 |
|
30 | 44 | prime(range_from, range_to)
|
| 45 | + SieveOfEratosthenes(range_to) |
| 46 | + |
0 commit comments