Le reste de la division euclidienne de 52020 par 1337 s'obtient avec 5 ** 2020 % 1337.
On fait des tests de 1 à 16<280<17.
280=1×280
280=2×140
280=4×70
280=5×56
280=7×40
280=8×35
280=10×28
280=14×20
Ainsi les diviseurs de 280 sont : 1,2,4,5,7,8,10,14,20,28,35,40,56,70,140,280.
42!+9 est divisible par 9, donc il n'est pas premier.
La fonction mystère permet de calculer le nombre de diviseurs d'un entier. C'est une fonction écrite quasi comme la fonction somme_diviseurs vue en cours. Pour chaque diviseur d on incrémente ans de 1 qui était initialisé à 0.
def mystère(n):
ans =0for d inrange(1, n+1):if n % d ==0:
ans = ans +1return ans
Exercice 2
Calcul du PGCD avec la décomposition en facteurs premiers :
144=2×72=22×36=23×18=24×32.
252=2×126=22×63=22×32×7.
Ainsi PGCD(144,252)=22×32=36.
Tous les inscrits doivent être dans une équipe, et les équipes doivent être homogènes, donc le nombre d'équipe doit être un diviseur commun au nombre de garçons comme de filles. On en veut le maximum, ainsi le nombre d'équipes est PGCD(144,252)=36.
Chaque équipe est composée de :
144÷36=4 filles ;
252÷36=7 garçons.
Exercice 3
M1=21−1=2−1=1 ; n'est pas premier.
M2=22−1=4−1=3 ; est premier.
M3=23−1=8−1=7 ; est premier.
M4=24−1=16−1=15=3×5 ; n'est pas premier.
M5=25−1=32−1=31 ; est premier.
M6=26−1=64−1=63=3×21 ; n'est pas premier.
M7=27−1=128−1=127 ; est premier.
M8=28−1=256−1=255, divisible par 5 ; n'est pas premier.
M9=29−1=512−1=511, divisible par 7 ; n'est pas premier.
M10=210−1=1024−1=1023, divisible par 3 ; n'est pas premier.
M11=211−1=2048−1=2047, divisible par 23 ; n'est pas premier.
Remarques :
Avant d'arriver à M11, on aurait pu penser que Mn est premier si et seulement si n est premier. Mais c'est faux en considérant M11 qui est composé, alors que 11 est premier.
On propose un script qui permet de vérifier davantage, et on peut prouver que Mn est premier que si n est premier ; sans la réciproque.
L'exercice est sans fin, car aujourd'hui encore, la recherche des plus grands nombres premiers utilise ces nombres Mn qu'on appelle nombres de Mersenne. C'est un thème fécond en mathématiques pour de nombreux travaux.
# avec la fonction is_prime vue en classefor n inrange(60):if is_prime(2**n -1):print(f"M_{n} est premier.")
M_2 est premier.
M_3 est premier.
M_5 est premier.
M_7 est premier.
M_13 est premier.
M_17 est premier.
M_19 est premier.
M_31 est premier.
On constate que les indices sont bien premiers, mais il manque : 11, 23, 29, 37, 41, 43, 47, 53, 59, ...
M67 est historiquement une première grande difficulté.