Python 2, distance 15, length 172
Task 1
D=lambda k:max(k-1,1)
P=lambda n,k=0:n<k or P(n-1,k)*n/k
lambda a,b:P(a**b-2)**2%D(a**b)
Task 2
D=lambda k:max(k-1,1)
P=lambda n,k=1:n<k or P(n-1,D(k))*n/k
lambda a,b:P(a,b)/P(a-b)
Python 2, distance 15, length 172
Task 1
D=lambda k:max(k-1,1)
P=lambda n,k=0:n<k or P(n-1,k)*n/k
lambda a,b:P(a**b-2)**2%D(a**b)
Task 2
D=lambda k:max(k-1,1)
P=lambda n,k=1:n<k or P(n-1,D(k))*n/k
lambda a,b:P(a,b)/P(a-b)
Python 2, distance 15, length 172
Task 1
D=lambda k:max(k-1,1)
P=lambda n,k=0:n<k or P(n-1,k)*n/k
lambda a,b:P(a**b-2)**2%D(a**b)
Task 2
D=lambda k:max(k-1,1)
P=lambda n,k=1:n<k or P(n-1,D(k))*n/k
lambda a,b:P(a,b)/P(a-b)
Python 2, distance 13 distance 15, length 122172
Task 1
F=__import__D=lambda k:max('math'k-1,1).factorial
P=lambda n,k=0:n<k or P(n-1,k)*n/k
lambda a,b:FP(a**b-2)**2%**2%D(a**b-1)
Task 2
F=__import__D=lambda k:max('math'k-1,1).factorial
P=lambda n,k=1:n<k or P(n-1,D(k))*n/k
lambda a,b:FP(a)/F(,b)/FP(a-b)
Python 2, distance 13, length 122
Task 1
F=__import__('math').factorial
lambda a,b:F(a**b-2)**2%(a**b-1)
Task 2
F=__import__('math').factorial
lambda a,b:F(a)/F(b)/F(a-b)
Python 2, distance 15, length 172
Task 1
D=lambda k:max(k-1,1)
P=lambda n,k=0:n<k or P(n-1,k)*n/k
lambda a,b:P(a**b-2)**2%D(a**b)
Task 2
D=lambda k:max(k-1,1)
P=lambda n,k=1:n<k or P(n-1,D(k))*n/k
lambda a,b:P(a,b)/P(a-b)
Python 2, distance 13, length 122
Task 1
F=__import__('math').factorial
lambda a,b:F(a**b-2)**2%(a**b-1)
Task 2
F=__import__('math').factorial
lambda a,b:F(a)/F(b)/F(a-b)