from numpy.polynomial import Polynomial
import matplotlib.pyplot as plt
import numpy as np

def P(n) :
    R = Polynomial([0,1])
    for k in range(1,n+1) :
        R = R * Polynomial([1,-1/k])
    return R

X = np.linspace(0,1,100)
for n in range(1,11) :
    Y = []
    for x in X :
        Y.append(P(n)(x))
    plt.plot(X,Y)
plt.show()

def X(n) :
    Q = P(n).deriv()
    rac = Q.roots()
    for r in rac :
        if 0 < r.real < 1 :
            return r.real

for k in range(1,11) :
    print("X(",10*k,")ln(",10*k,")=",np.log(10*k)*X(10*k))