you are give a number upto range 10^12
How to find all possible factors of it ?
Ex-for 18 factors are -> 1,2,3,6,9,18
1 Like
In Python I would do it like this:
number = input('Your number: ')
results = []
for i in range(1,number+1) :
if number % i == 0 :
results.append(i)
print results
But I don’t think that my code will work up to 10^12
you just have to loop through sqrt(n) .
number= input()
result=[]
for i in range(1,math.sqrt(number)+1):
if number%i == 0 :
if(number/i != i):
result.append(i)
result.append(number/i)
else:
result.append(i)
print result
1 Like
It would work till 10**7 in 1 sec… It wont work for over that…
Some simple optimizations : If number is odd then you can skip all the even numbers. You could also use some prime number test to avoid looping for prime numbers