FATORIAL.py (SPOJ)
De GirinoWiki
O código a seguir foi baseado nas informações do seguinte link:
[editar] Código
#!/usr/bin/python #import psyco #psyco.full() import sys def to_base_5(n): val = n ret = 0 l = 0 while val > 0: ret = 10*ret + (val % 5) val = val / 5 l = l + 1 return (ret, l) fact = [1, 1, 2, 6, 4, 2] def last_digit(n): global fact a_l = to_base_5(num) a = a_l[0] l = a_l[1] val = 1 for i in range(0, l): a_i = (a / 10**(l-i-1)) % 10 val = (val * fact[a_i] * (2**(i*a_i))) % 10 return (6*val) % 10 if __name__ == '__main__': count = 1 for line in sys.stdin: num = int(line) print "Instancia", count print last_digit(num) print count = count + 1





