<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 13 Boucle for
Syntaxe 
Step1:  15 Fonctions def
Syntaxe 
Step2:  Pour un nombre $x\geq1$, trouver l'unique valeur entière $n$ vérifiant $$2^{n−1} < x < 2^n,$$ c’est-à-dire le plus petit entier $n$ vérifiant $x < 2^n$.
Step3:  16.1 Interrompre une boucle avec break
Écrire un programme qui affiche les puissances de deux inférieures à un milliard et arrêter le programme si une puissance termine par 88.
Step4:  16.2 Continuer une boucle à l'itération suivante avec continue
Écrivez un programme qui calcule les 50 premiers termes de la table de multiplication par 13, mais n’affiche que ceux qui sont des multiples de 7.
Step5:  17 Exemples (def + while + for + if)
17.1 Conjecture de Syracuse
En mathématiques, on appelle suite de Syracuse une suite d'entiers naturels définie de la manière suivante 
Step6:  17.2 Énumérer les diviseurs d'un nombre entier
Step7:  17.3 Tester si un nombre est premier
Écrire une fonction est_premier(n) qui renvoie True si n est premier et False sinon.
Step8:  17.4 Trouver les nombres premiers jumeaux
17.5 Séparer une liste en deux selon la parité
Écrivez un programme qui analyse un par un tous les éléments d’une liste de nombres pour générer deux nouvelles listes. L’une contiendra seulement les nombres pairs de la liste initiale, et l’autre les nombres impairs.
<ASSISTANT_TASK:>
Python Code:
a = 6
b = 15
if a < b:
    m = a
else:
    m = b    
m
m = a if a < b else b
m
Explanation: 13 Boucle for
Syntaxe :
for ELEMENT in LISTE:       # ligne d'en-tête se terminant par ":"
    INSTRUCTION #1          # bloc d'instructions indenté de 4 espaces
    INSTRUCTION #2
    INSTRUCTION #3
14 Conditions if
Syntaxe :
if CONDITION_1:               # ligne d'en-tête se terminant par ":"
    INSTRUCTION #1            # bloc d'instructions indenté de 4 espaces
    INSTRUCTION #2
    INSTRUCTION #3
elif CONDITION_2:
    INSTRUCTION #4            # bloc d'instructions indenté de 4 espaces
    INSTRUCTION #5
    INSTRUCTION #6
else:
    INSTRUCTION #7            # bloc d'instructions indenté de 4 espaces
    INSTRUCTION #8
    INSTRUCTION #9
14.5 Syntaxe compacte d'une assignation conditionnelle
End of explanation
k = 1
while k < 10**9:
    print(k)
    k = k * 2
Explanation: 15 Fonctions def
Syntaxe :
def FONCTION(PARAMETRES):      # ligne d'en-tête se terminant par ":"
    INSTRUCTION #1             # bloc d'instructions indenté de 4 espaces
    INSTRUCTION #2
    INSTRUCTION #3
16 La boucle while
La boucle while peut être utile lorsqu'on ne sait pas combien d'itérations on doit faire.
Syntaxe :
while CONDITION:            # ligne d'en-tête se terminant par ":"
    INSTRUCTION #1          # bloc d'instructions indenté de 4 espaces
    INSTRUCTION #2
    INSTRUCTION #3
Écrire un programme qui affiche les puissances de deux inférieures à un milliard.
End of explanation
k = 1
n = 0
while k < 10**9:
    k = k * 2
    n = n + 1
print(n)
Explanation: Pour un nombre $x\geq1$, trouver l'unique valeur entière $n$ vérifiant $$2^{n−1} < x < 2^n,$$ c’est-à-dire le plus petit entier $n$ vérifiant $x < 2^n$.
End of explanation
k = 1
while True:
    k = 2*k
print(k)
Explanation: 16.1 Interrompre une boucle avec break
Écrire un programme qui affiche les puissances de deux inférieures à un milliard et arrêter le programme si une puissance termine par 88.
End of explanation
for i in range(10):
    if i == 7:
        continue
    print(i)
Explanation: 16.2 Continuer une boucle à l'itération suivante avec continue
Écrivez un programme qui calcule les 50 premiers termes de la table de multiplication par 13, mais n’affiche que ceux qui sont des multiples de 7.
End of explanation
def syracuse(n):
    if n % 2 == 0:
        return n // 2
    else:
        return 3 * n + 1
syracuse(13)
syracuse(40)
n = 1234097125
while n != 1:
    n = syracuse(n)
    print(n, end=' ')
n = 1234097125
while n != 1:
    print(n, end=' ')
    n = syracuse(n)
print(n)
Explanation: 17 Exemples (def + while + for + if)
17.1 Conjecture de Syracuse
En mathématiques, on appelle suite de Syracuse une suite d'entiers naturels définie de la manière suivante :
On part d'un nombre entier plus grand que zéro ; s’il est pair, on le divise par 2 ; s’il est impair, on le multiplie par 3 et on ajoute 1. En répétant l’opération, on obtient une suite d'entiers positifs dont chacun ne dépend que de son prédécesseur.
Par exemple, à partir de 14, on construit la suite des nombres : 14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2... C'est ce qu'on appelle la suite de Syracuse du nombre 14.
https://fr.wikipedia.org/wiki/Conjecture_de_Syracuse
Écrire une fonction qui calcule la suite de Syracuse d'un nombre et retourne ce résultat sous la forme d'une liste.
End of explanation
n = 12
L = []
for i in range(1, n+1):
    reste = n % i
    if reste == 0:
        L.append(i)
print(L)
from math import sqrt
def diviseurs(n):
    L = []
    sq = int(sqrt(n))
    for i in range(1, sq+1):
        reste = n % i
        if reste == 0:
            L.append(i)
            L.append(n//i)
    return L
diviseurs(12)
diviseurs(7)
Explanation: 17.2 Énumérer les diviseurs d'un nombre entier
End of explanation
def est_premier(n):
    div = diviseurs(n)
    return len(div) == 2
est_premier(12)
est_premier(13)
def est_premier_2(n):
    sq = int(sqrt(n))
    for i in range(2, sq+1):
        if n % i == 0:
            return False
    return True
est_premier_2(12)
est_premier_2(13)
Explanation: 17.3 Tester si un nombre est premier
Écrire une fonction est_premier(n) qui renvoie True si n est premier et False sinon.
End of explanation
L = [123, 535, 74764, 14379, 56452546, 2356, 3, 4, 8]
Explanation: 17.4 Trouver les nombres premiers jumeaux
17.5 Séparer une liste en deux selon la parité
Écrivez un programme qui analyse un par un tous les éléments d’une liste de nombres pour générer deux nouvelles listes. L’une contiendra seulement les nombres pairs de la liste initiale, et l’autre les nombres impairs.
End of explanation
<END_TASK>