Share runnable code, everywhere.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def legendre(n,p):
    v = 0
    q = p
    while q<=n:
        v += n//q
        q *= p
    return v
def methode_pas_top(n):  # en O(n)
    p2 = legendre(n,2) - legendre(n,5)
    k = pow(2,p2,10)  # 2^p2 mod 10
    for i in range(2,n+1):
        for p in [2,5]:
            while i%p==0:
                i //= p
        k = (k*i)%10
    return k
for i in range(2,7):
    print('10^%d! se termine par %d puis %d zĂ©ros' % (i,methode_pas_top(10**i),legendre(10**i,5)))