Listing the factors of a number - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: General (https://python-forum.io/forum-1.html) +--- Forum: Code sharing (https://python-forum.io/forum-5.html) +--- Thread: Listing the factors of a number (/thread-11715.html) |
Listing the factors of a number - TitaniumGene - Jul-22-2018 I wrote this code after taking a few basic Python courses. I welcome feedback on how to improve it. print("This program will list the factors of a number for you.") #Need a function to find factors of an integer. def find_factors(integer): factors = [] #It has to be 1 more than the integer to include the actual integer. for i in range(1, integer + 1): if integer % i == 0: factors.append(i) return print("The factors of",integer,"are",factors,".") #Check the input for valid. while True: product = input("Enter a positive integer: ") if product.isalpha() == True: print("That is not an integer.") elif product.isdigit() == True: print("That is a valid response.") product = int(product) #Converts the product string into an integer. find_factors(product) break else: print("Try again.") RE: Listing the factors of a number - ichabod801 - Jul-23-2018 You only need to check up to the square root of the number. But to do that, you need to append the factor you found (i (which is a bad variable name, use more descriptive names like 'factor' or 'possible')), and the number divided by the factor. For example, checking factors of 16, you get 2 as a factor. You add that to the factors list, as well as 16 / 2 = 8. RE: Listing the factors of a number - WolfWayfarer - Jul-23-2018 Being a beginner myself I'll give you the little help I can think of, you might want to document your functions, instead of using a comment line on top with: #my commentyou could try the docstring which would give you something like this: def find_factors(integer): """ Need a function to find factors of an integer. """ factors = []Your docstring will show up when people use help(). |