Prime Number Generator - Py
Prime Number Generator - Py
def divisible_by_2(string):
#checking divisibility of 2
return string[-1]=='0' or string[-1]=='2' or string[-1]=='4' or string[-1]=='6'
or string[-1]=='8'
def divisible_by_3(string):
#checking divisibility of 3
total=0
for char in string:
total+=int(char)
return total%3==0 #sum of digits of a number
def divisible_by_4(string):
#checking divisibility of 4
return int(string[-2:])%4==0 #last 2 digits of a number
def divisible_by_5(string):
#checking divisibility of 5
return string[-1]=='5' #unit digit of a number
def divisible_by_8(string):
#checking divisibility of 8
return int(string[-3:])%8==0 #last 3 digits of a number
def divisibility_check(string):
#checking divisibility of 2,3,4,5 and 8
return divisible_by_2(string) or divisible_by_3(string) or
divisible_by_4(string) or divisible_by_5(string) or divisible_by_8(string)
def prime_number_geneartor_4(start_range,end_range):
for i in range(start_range,end_range+1):
stringified_num = str(i)
if i<=1: #eliminating negative numbers,0 and 1 as
they are not primes
continue
elif len(stringified_num)>1 and divisibility_check(stringified_num):
#performing divisibility_checks for numbers having length>=2
continue
is_prime=True
for j in range(2,i//2+1): #Prime number check by reducing no.of
iterations to half
if i%j==0:
is_prime=False
break
if is_prime:
global result
result.append(i)
return result
def prime_number_geneartor_3(start_range,end_range):
for i in range(start_range,end_range+1):
if i<=1: #eliminating negative numbers,0 and 1 as
they are not primes
continue
is_prime=True
for j in range(2,i//2+1): #Prime number check by reducing no.of
iterations to half
if i%j==0:
is_prime=False
break
if is_prime:
global result
result.append(i)
return result
def prime_number_geneartor_2(start_range,end_range):
for i in range(start_range,end_range+1):
if i<=1: #eliminating negative numbers,0 and 1 as
they are not primes
continue
is_prime=True
for j in range(2,i): #Prime number check excluding 1 and itself
if i%j==0:
is_prime=False
break
if is_prime:
global result
result.append(i)
return result
def prime_number_geneartor_1(start_range,end_range):
for i in range(start_range,end_range+1):
if i<=1: #eliminating negative numbers,0 and 1 as
they are not primes
continue
count=0
for j in range(1,i+1): #Prime number check including 1 and itself
if i%j==0:
count+=1
if count==2:
global result
result.append(i)
return result
#selecting strategies
if choice==1:
start_time = time.time() #time just before performing prime
Check
result = prime_number_geneartor_1(start_range,end_range) #calling
Generator-1
end_time = time.time()-start_time #time taken to perform prime check
elif choice==2:
start_time = time.time() #time just before performing prime
Check
result = prime_number_geneartor_2(start_range,end_range) #calling
Generator-1
end_time = time.time()-start_time #time taken to perform prime check
elif choice==3:
start_time = time.time() #time just before performing prime
Check
result = prime_number_geneartor_3(start_range,end_range) #calling
Generator-1
end_time = time.time()-start_time #time taken to perform prime check
elif choice==4:
start_time = time.time() #time just before performing prime
Check
result = prime_number_geneartor_4(start_range,end_range) #calling
Generator-1
end_time = time.time()-start_time #time taken to perform prime check
else:
print("Enter valid Selection")
print(result)
print("count,",len(result))
print("processing time:",end_time)