So I did my own take (I wrote my own algorithm) for generating prime numbers from 1 to 1000
.
lst = [y for y in range(1000)]
for i in range(0,len(lst)): #i = 1 and i is traversal
print("iterate - " + str(i))
for j in range(i,0,-1): #divisor range
print(j)
if j != 1 and j < lst[i] and lst[i] % j == 0:
if j in lst:
lst[i] = 0
break
for k in range(len(lst)):
if 0 in lst:
lst.remove(0)
if 1 in lst:
lst.remove(1)
print(lst)
My concerns are
- Is this code easy to read?
- Is this optimal (I don't think so)?
- What should I do for improving my code?
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, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149,
151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229,
233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313,
317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409,
419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499,
503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601,
607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691,
701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809,
811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907,
911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997