Algorithmes sur les nombres entiers, la division

Exercice 1

Voici un programme python. Sans l'exécuter, deviner le contenu des variables a ,b et c à la fin.

In [1]:
a = 5
b = 2
c = 4
if a == 0:
    b = 7
    c = 3
else:
    if b+c == 6:
        a = 0
    else:
        a = 6
    b = 1
c = 2
In [2]:
print(a, b,c)
0 1 2

Exercice 2

Voici un programme python. Sans l'exécuter, deviner le contenu des variables k et p à la fin.

In [3]:
k = 1
p = 10
while k < 4:
    p = 2*p
    k = k+1
In [4]:
print(k, p)
4 80

Exercice 3

Compléter le programme ci-dessous pour qu'il affiche le maximum de deux nombres entiers entrés.

In [5]:
a = int(input("Entrer un entier : "))
b = int(input("Entrer un deuxième entier : "))
if a>b : 
    print("Le maximum est : ", a)
else:
    print("Le maximum est : ", b)
Entrer un entier : 60
Entrer un deuxième entier : 5
Le maximum est :  60

Exercice 4

Ecrire un programme qui trouve le maximum de trois nombres entiers entrés.

In [6]:
def maximum(x,y):
    # fonction qui retourne le maximum de x et y
    if x>y :
        return x
    else:
        return y
In [7]:
maximum(10,500)
Out[7]:
500
In [8]:
maximum(5,2)
Out[8]:
5
In [9]:
maximum(5,5)
Out[9]:
5
In [10]:
a = int(input("Entrer un entier : "))
b = int(input("Entrer un deuxième entier : "))
c = int(input("Entrer un troisième entier : "))
print("Le plus grand entier est ", maximum(maximum(a,b) , c))
Entrer un entier : 50
Entrer un deuxième entier : 55
Entrer un troisième entier : 2
Le plus grand entier est  55

Exercice 5

L'algorithme ci-dessous est incomplet

PGCD : calcul du PGCD de deux entiers entrés

Entrées : deux entiers
Sorties: leur PGCD
Variables: a, b, k, pgcd : entiers

Début
$\quad$demander a
$\quad$demander b
$\quad$k $\longleftarrow$ 1
$\quad$Tantque $\ldots\ldots\ldots\ldots$ faire
$\quad$$\quad$Si (k divise a) et (k divise b) alors
$\quad$$\quad$$\qquad$ pgcd = k
$\quad$$\quad$finsi
$\quad$$\quad$k $\longleftarrow$ k+1
$\quad$fintantque
$\quad$afficher pgcd
Fin

Que faut-il écrire dans les pointillés ?

Réponse : par exemple : (k $\leqslant$ a) et (k $\leqslant$ b)

Traduire l'algorithme en python :

In [1]:
a = int(input("Entrer un entier : "))
b = int(input("Entrer un deuxième entier : "))
k = 1

while (k <= a) and (k <= b):
    if (a%k == 0) & (b%k == 0):
        pgcd = k
    k = k+1

print("Le PGCD des deux entiers est ", pgcd)
Entrer un entier : 500
Entrer un deuxième entier : 1200
Le PGCD des deux entiers est  100

Supplément : Ecrire un algorithme qui trouve tous les nombres parfaits jusqu’à 10000.

Un nombre parfait est un entier naturel égal à la somme de ses diviseurs (ses diviseurs propres : tous sauf le nombre lui-même).

Exemple : 6 est parfait car 6 = 1 + 2 + 3

In [ ]: