```
def factorial(x):
k= x-1
#stores numbers
if x==0: #two if statments for uneeded
return 1
if x==1:
return 1
number = str(x)
for y in number: # supposed to reduce
original_value= int(number)
the_factorial=original_value*factorial(x-1)
return the_factorial
print factorial(20)
```

I don"t understand why factorial(x-1) works