def zehra_find_prime_factors(number): liste=list(range(1,int(number)+1)) #print(liste) factornum=[] for i in range(len(liste)): if liste[-1]%liste[i]==0: factornum.append(liste[i]) # factornum.remove(0) # print(factornum) nonprimefactor=[] a=int(len(factornum)) #print(a) for i in range(len(factornum)): # for j in range( ( (a-1 )*a//2 ) +1): for j in range(1, i): # for j in range((a-1)): if factornum[j] == 1: continue if factornum[i]==factornum[j] : break elif factornum[i]%factornum[j]==0 and factornum[i] not in nonprimefactor: nonprimefactor.append(factornum[i]) #print(nonprimefactor) primefactor=[] primefactor=list(set(factornum)-set(nonprimefactor)) primefactor.sort() #print(primefactor) print(primefactor) def find_factors(number): factors = [] for i in range(1, number): if number % i == 0: factors.append(i) return factors def chris_find_prime_factors_like_zehra(number): all_factors = find_factors(number) non_prime_factor = set() # print (all_factors) for index, factor in enumerate(all_factors): for j in range(index): subfactor = all_factors[j] if subfactor == 1: continue if factor == subfactor: break if factor % subfactor==0: non_prime_factor.add(factor) prime_factors = list(set(all_factors)-non_prime_factor) prime_factors.sort() print(prime_factors) def chris_find_prime_factors(number): all_factors = find_factors(number) prime_factors = [] for factor in all_factors: is_prime = len(find_factors(factor)) < 2 # all primes have 1 as factor, except 1 if is_prime: prime_factors.append(factor) prime_factors.sort() print(prime_factors) number=int(input('Enter a number')) zehra_find_prime_factors(number) chris_find_prime_factors_like_zehra(number) chris_find_prime_factors(number)