"""
test5.py
Ceci est un exemple d'appel à une routine écrite en langage C.

Test la librairie de démo "test5.c"

"""

import test5
print(test5.sommeInv.__doc__) # pour afficher de l'aide sur la fonction.
print()
print(test5.sommeInv9.__doc__) # pour afficher de l'aide sur la fonction.
print()

print(test5.sommeInv9(1, 10)) # 1/1 + 1/2 + 1/3 + 1/4 + ... + 1/8 (1/9 est éliminé)
print(test5.sommeInv9(10, 100)) # 1/10 + 1/11 + 1/12 + 1/13 + 1/14 + ... + 1/88
   # Eliminé : 1/19, 1/29, ..., 1/79, 1/89 à 1/99
print(test5.sommeInv9(100, 1000)) # 1/100 + 1/101 + 1/102 + 1/103 + ... + 1/888
print(test5.sommeInv9(1000, 10000)) # 1/1000 + 1/1001 + 1/1002 + ... + 1/8888
print(test5.sommeInv9(10000, 100000)) # 1/10000 + 1/10001 + 1/10002 + ... + 1/88888
print()
print(test5.sommeInv(100, 1000)) # 1/100 + 1/101 + 1/102 + 1/103 + ... + 1/999
print(test5.sommeInv(1000, 10000)) # 1/1000 + 1/1001 + 1/1002 + ... + 1/9999
print(test5.sommeInv(10000, 100000)) # 1/10000 + 1/10001 + 1/10002 + ... + 1/99999
print()

nn=10
s2 = test5.sommeInv9(nn, 10*nn)
while (nn < 10000000):
    s1 = s2
    nn=10*nn
    s2 = test5.sommeInv9(nn, 10*nn)
    print("Rapport =", s2/s1)

# On remarque que le rapport de ces sommes tend vers 0,9
# Ceci suggère très fortement que cette série converge
# comme 0.9^Log10(N)
# Donc la convergence est très lente.

nn = 10000000
s1 = test5.sommeInv9(1, nn)
s2 = test5.sommeInv9(nn, 10*nn)
# La valeur limite est environ :
# s1 + s2*(1 + 0.9 + 0.9^2 + 0.9^3 + 0.9^4 + ...) = s1 + 10*s2
print("Valeur limite =", s1 + 10*s2)
# On montre par d'autres méthodes que la valeur limite vaut bien :
# 22,92067 66192 64150 34816 ...
