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