Exercices sur les ensembles de nombres - Algorithmique
Avec des variables
Enoncé
Un distributeur de billets délivre des billets de 50, 20 et 10 euros. Pour une somme donnée, il délivre toujours le moins de billets possibles.
- Quels billets va-t-il délivrer pour une demande de 280 euros? de 340?
- Compléter l'algorithme suivante afin de la fonction $distributeur(n)$ renvoie le nombre de billets de 50, de billets de 20 et de billets de 10 euros donnés par le distributeur lorsqu'on lui demande une somme de $n$ euros.
def distributeur(n):
c=n//50
n=n%50
v=...
n=...
d=...
return (c,v,d)
Exercice 2 - Conversion de secondes en heures minutes secondes [Signaler une erreur] [Ajouter à ma feuille d'exos]
Enoncé
- Combien y-a-t-il de secondes dans une heure?
- Soit $n$ un entier naturel. Quelle instruction Python permet de donner le nombre d'heures (entières) dans $n$ secondes? Quelle instruction Python permet alors de déterminer le nombre de secondes restantes.
- Compléter la fonction suivante sous Python afin qu'elle renvoie le nombre d'heures, minutes, secondes qu'il y a dans $n$ secondes.
def heuminsec(n):
h=...
n=n%3600
m=...
s=...
return h,m,s
Avec des booléens et des tests
Enoncé
- Comment peut-on tester si $a$ divise $b$ en calculant le reste dans la division euclidienne de $a$ par $b$?
- Compléter la fonction Python suivante pour qu'elle renvoie le booléen True si $a$ divise $b$, et le booléen False sinon.
def divise(a,b):
return ...
Enoncé
Les années bissextiles sont celles dont le numéro est divisible par $4$ mais n'est pas divisible par $100$, et celles dont le numéro est divisible par $400$.
- $2024$ est-elle une année bissextile? $2025$? $2100$? $2400$?
-
Compléter l'algorithme ci-dessous avec les booléens $annee\%4 == 0$,
$annee\%100!=0$, $annee\%400==0$, et avec les connecteurs logiques $\textrm{or}$ et $\textrm{and}$ pour que la fonction $bissextile(annee)$ renvoie $True$ si $annee$ est le numéro d'une année bissextile, et $False$ sinon.
def bissextile(annee):
return ....
Avec une boucle
Enoncé
On souhaite écrire une fonction Python pour déterminer si un nombre entier naturel $n\geq 2$ est premier ou non.
- Dans la console, tester les instructions $6\%3$, $7\%3$, $8\%3$.
- Que renvoie l'instruction $a\%b$?
- Que test l'instruction $a\%b==0$?
- Compléter la fonction suivante pour qu'elle renvoie $\textrm{True}$ si le nombre $n\geq 2$ est premier, et $\textrm{False}$ sinon.
def premier(n):
resultat=True;
for i in ....:
if ...:
resultat=False
return resultat
Enoncé
On souhaite écrire sous Python une fonction déterminant le nombre de diviseurs positifs d'un entier naturel $n$. On donne la fonction suivante :
def nbdiviseurs(n):
S=0
for i in range(1,n+1):
if ... :
S=...
return S
def nbdiviseurs(n):
S=0
for i in range(1,n+1):
if ... :
S=...
return S
- Quelles sont les valeurs prises par $i$?
- Compléter la fonction en remplaçant les ... pour que la fonction retourne le nombre de diviseurs de $n$.
Avec une liste
Exercice 7 - Algorithme de décomposition en produit de facteurs premiers [Signaler une erreur] [Ajouter à ma feuille d'exos]
Enoncé
On donne la fonction suivante, qui calcule la décomposition en produit de facteurs premiers d'un entier $n$.
def decompopremiers(n):
L=[]
while (n>1):
i=2
while (n%i!=0):
i=i+1
L.append(i)
n=n//i
return L
def decompopremiers(n):
L=[]
while (n>1):
i=2
while (n%i!=0):
i=i+1
L.append(i)
n=n//i
return L
- Faire fonctionner l'algorithme pour $n=12$. Comment varient les variables $i$ et $n$? Que retourne la fonction?
- A quoi sert la variable $i$? Pourquoi est-elle initialisée à $i=2$?
- A quoi sert la ligne $n=n//i$?
Pour compléter...