-
🚀 @setopPartial unobfuscation :
- retrieve builtins functions
x,y = [6, 11], [48, 67] # random indices s = [x for x in vars( )] # locals (contains pointer to builtins) b = vars()[s[x[0]]] # buildins k = list((b.__dict__ .keys())) # names of builtin functions g = getattr(b, k[x[1]*2]) # g is gettarr function m = g(b, k[y[1]+1]) # m is map function l = g(b, k[x[1]*3] ) # l is len function i = g(b, k[x[1]*6]) # i is int function p = g(b, k[y[0]- x[0]]) # p is print function
I did not know the order of builtins is stable from one python to an other
- get program arguments $0, $1 ...
a=g(g(b,k [x[0]] )("".join( m( g(b,k[ x[0] //2+x[1]]) ,(m( g( b, k[y[ 0] -1 ]) ,g(b,k[x [1]+ y[ 1] +1])([*[ g(b, k[ y[0]-1]) (y)] *3 ], [0,x[0], 0])) )) )) ,"". join(m(g(b ,k [x[0 ]//2+x[1]] ), (m (g (b ,k [y [0 ]- 1] ), g( b, k[x[1] +y[1 ]+1] )([*[g (b,k [y[0 ]- 1])( y) ]*4],[x[0]*- 3,-1 ,x [0]* -2 ,x[0]//2]))) ))) # -> ['fibonacci.py', '5']
- compute using partial fraction decomposition and print
p(i((1/5**.5)*(((1+5**.5)/2)**(i(a[1])+1)-((1-5**.5)/2)**(i(a[1])+1)))) if l(a)>1 else p(1)
Which can be rewritten as :
import sys if len(sys.argv)>1: n = int(sys.argv[1]) print(int((1/5**.5)*(((1+5**.5)/2)**(n+1)-((1-5**.5)/2)**(n+1)))) else: print(1)
Please register or sign in to comment