## Exercice 1

print("Hello world!")


## Exercice 2

# Taper dans la console : 1/(1+1/(2+1/(3+1/4)))


## Exercice 5

# 1

for i in range(11):   # fait varier i de 0 à 10
    print(i**3)

# 2

f = 1
for k in range(2, 101):
    f = f * k    # on peut aussi écrire f *= k
print(f)

# 3

nb = 0
for i in range(1, 1001):
    if i % 17 == 0:    # si i est divisible par 17
        nb = nb + 1    # on peut aussi écrire nb += 1
print(nb)


## Exercice 6

# 1

i = 0
while i <= 10:
    print(i**3)
    i = i + 1

# 2

s = 0
i = 1
while i <= 1000:
    s = s + i
    i = i + 1
print(s)


## Exercice 8

# 1) b.

u = 0
for i in range(5):
    u = 2*u + 1
    print(u)

# 1) c.

u = 0
s = 0
for i in range(50):
    u = 2*u + 1
    s = s + u
print(s)

# 2) b.

u = 1
v = 2
for i in range(5):
    u = u + v
    v = u - v
    print(u, v)

# Ce programme ne renvoie pas le résultat attendu car quand on fait v = u - v la
# variable u a été modifiée.

u = 1
v = 2
for i in range(5):
    w = u
    u = u + v
    v = w - v
    print(u, v)

# La variable u est stockée dans w avant d'être modifiée.

# 2) c.

u = 1
v = 2
for i in range(5):
    u, v = u + v, u - v  # u et v sont modifiées simultanément.
    print(u, v)

# 3)

u = 1
v = 1
for i in range(19):
    u, v = v, u + v
print(v)

# 4) b.

u = 1
for i in range(1000):
    if u > 0:
        u = u/2 - 1
    else:
        u = u + 1
print(u)

# Ce résultat est faux à cause des erreurs sur les flottants (afficher les termes
# pour voir ce qui se passe).


## Exercice 9

for x in range(35):  # inutile d'aller plus loin car 35**2 > 1000
    for y in range(35):
        if x**2 + y**2 == 1000:
            print(x, y)


## Exercice 10

somme = 0
for n in range(1001):
    if n % 3 == 0 or n % 5 == 0:
        somme = somme + n
print(somme)


## Exercice 11

n = 0
s = 0
while s <= 10:
    n = n + 1
    s = s + 1/n
print(n)


## Exercice 12

# 1)

nb = 0
for a in range(1, 101):
    for b in range(a, 101):
        for c in range(b, 101):
            if a**2 + b**2 == c**2:
                print(a, b, c)
                nb = nb + 1
print('Il y en a', nb)

# 2)

for a in range(1, 1001):
    for b in range(a, 1001):
        if a**2 + b**2 == (1000-a-b)**2:  # on sait que a+b+c = 1000 donc c = 1000-a-b
            print(a, b, 1000-a-b)
