Accueil

Orientation générale

Barre de recherche

DicoNombre

DicoMot Math

DicoCulture

Atlas des maths

Rubriques

Index alphabétique

Nouveautés

Actualités

Références

Édition du: 30/07/2025

M'écrire

Brèves de Maths

 

INDEX

 

Python

 

Programmation

Informatique

Multimédia

Ordinateur

Python – Comment se lancer et initiation

INITIATION

BASES

MATHS

Nombres

Arithmétique

Combinatoire

Plus de chiffres

Th. des nombres

Avec des chiffres

Algèbre

Faites un double-clic pour un retour en haut de page

 

 

 

PYTHON: Trucs et astuces

Théorie des nombres

 

Quelles sont les principales choses à savoir ou à avoir sous la main lorsqu'on s'intéresse à la théorie des nombres: facteurs, diviseurs, premiers, …. Les fonctions principales

 

 

Sommaire de cette page

>>> Nombres premiers

>>> Facteurs

>>> Diviseurs

>>> PGCD et PPCM

>>> SYMPY – Principales fonctions

  

Débutants

Programmation

 

Glossaire

Informatique

Algorithme

 

Voir Comment installer sympy

 

 Nombres premiers

haut

Test si premier

 

 

 

&

Voisins

from sympy import isprime, nextprime, prevprime

n = 23

if isprime(n):

    print("le nombre", n ,"est premier")

 

print("prédésseur",prevprime(n))

print("successeur",nextprime(n))

le nombre 23 est premier

prédésseur 19

successeur 29

Énième premier

 

&

 

Liste de premiers

from sympy import primerange, prime

print("centième premier: ",prime(100))

 

L = list(primerange(1,100))

print("premiers de 1 à 100: ",L)

centième premier:  541

 

premiers de 1 à 100:  [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

Fonction Pi

 

Quantité de premiers jusqu'à n

from sympy import primepi

for n in range (100,106):

    q = primepi(n)

    print("Pi(",n,(")="),q)

 

ou (Voir Affichage)

    print(f" Pi ({n}) = {q}")

Pi( 100 )= 25

Pi( 101 )= 26

Pi( 102 )= 26

Pi( 103 )= 27

Pi( 104 )= 27

Pi( 105 )= 27

 

Facteurs

haut

Facteurs

 

&

 

Accès aux facteurs et aux exposants

from sympy import factorint

n = 720

F = factorint(n)

print(n, F)

print(F.items())

print(F.keys())  # les facteurs 

print(F.values())# les exposants

720 {2: 4, 3: 2, 5: 1}

dict_items([(2, 4), (3, 2), (5, 1)])

dict_keys([2, 3, 5])

dict_values([4, 2, 1])

Application: test si premier

n = 101

F = factorint(n)

if len(F.keys()) == 1 \

and sum(F.values())== 1:

    print(n, "est premier")

101 est premier

Car un seul facteur et la somme des exposant est 1.

Voir Application à la détection de semi-premiers

 

 

 

Diviseurs

haut

Diviseurs

Quantité

Somme

from sympy import divisors, divisor_count, divisor_sigma

n = 30

print(divisors(n))

print(divisor_count(n))

print(divisor_sigma(n))

[1, 2, 3, 5, 6, 10, 15, 30]

8

72

 Sommes

*      des diviseurs

*      des carrés des diviseurs

*      des diviseurs puissance 0, soit quantité de diviseurs

from sympy.functions.combinatorial.numbers import divisor_sigma

n = 30

print(divisor_sigma(n))

print(divisor_sigma(n, 2))

print(divisor_sigma(n, 0))

72

1300

8

 

 

PGCD et PPCM

haut

PGCD et PPCM

from sympy import gcd, lcm

 

print(gcd(420, 4410))

print(lcm(420, 4410))

210

8820

 

 

SYMPY – Principales fonctions

haut

Fonction

Description

Tests de primalité et nombres premiers

Module : sympy.ntheory.generate

isprime(n)

Vérifie si n est un nombre premier

prime(n)

Renvoie le énième nombre premier

composite(n)

Renvoie le énième entier composé

nextprime(n)

Premier suivant après n

prevprime(n)

Premier précédent avant n

primerange(a, b)

Liste des premiers dans l’intervalle [a,b]

primepi(n)

Quantité de premiers ≤ n

compositepi(n)

Quantité d’entiers composés ≤ n

randprime(a, b)

Premier aléatoire dans [a, b]

primorial(n)

Produit des n premiers nombres premiers

Factorisation et diviseurs

Module : sympy.ntheory.factor

factorint(n)

Décomposition en facteurs premiers

primefactors(n)

Liste des facteurs premiers

divisors(n)

Tous les diviseurs de n

proper_divisors(n)

Diviseurs stricts de n

divisor_count(n)

Quantité totale de diviseurs

proper_divisor_count(n)

Quantité de diviseurs (sans le nombre n)

divisor_sigma(n, k)

Somme des diviseurs élevés à la puissance k (déprécié)

totient(n)

Quantité de nombres premiers avec n et inférieurs à n

is_perfect(n)

is_abundant(n), is_deficient(n)

is_amicable(n), is_carmichael(n)

Test si parfait, abondant, déficient, amical ou Carmichael

Fonctions arithmétiques classiques

Module : sympy.ntheory.factor

totient(n)

Fonction d’Euler ϕ(n)\phi(n)

mobius(n)

Fonction de Möbius μ(n)\mu(n)

core(n)

Partie sans carré de n

is_perfect(n)

Vérifie si n est un nombre parfait

abundance(n)

Excès de la somme des diviseurs sur 2n

 PGCD et PPCM

Module : sympy.ntheory.factor

 gcd(a, b)

Plus grand commun diviseur (PGCD)

 lcm(a, b)

Plus petit commun multiple (PPCM)

 igcdex(a, b)

Délivre le triplet (g, x, y) tel que ax + by = g = PGCD(a, b)

Congruences et résidus

Module : sympy.ntheory.modular

crt(module, residues)

Théorème des restes chinois

is_quad_residue(a, p)

Vérifie si a est un résidu quadratique modulo p

jacobi_symbol(a, n)

Symbole de Jacobi

kronecker_symbol(a, n)

Symbole de Kronecker

legendre_symbol(a, p)

Symbole de Legendre

solve_congruence(c)

Résout des systèmes de congruences de type chinois

sqrt_mod(a, p)

Racine carrée modulaire

Partitions d'entiers

Module : sympy.ntheory.partitions

npartitions(n)

Partitions de n

 

Autres fonctions non citées en

Tests de primalité avancés,

Coefficients binomiaux et multinomiaux,

Résidus, symboles et racines modulaires,

Fractions égyptiennes,

Fractions continues

Voir Liste complète des fonctions avec explications – SymPy 1.14.0 documentation

Introductory Tutorial – SymPy 1.14.0 documentation

 

 

 

 

Haut de page (ou double-clic)

 

 

 

Retour

*      Trucs de base en Python

*      Python – Ce qu'il faut absolument comprendre avant de se lancer

*      Les classiques en Python

Suite

*      Trucs avec les listes et les ensembles

*      Tour d'horizon avec l'exemple des palindromes

*      Les classiques – Factorielle, Fibonacci …

*      Comment obtenir plus de chiffres significatifs

*      Mes premiers dessins

Voir

*      Scratch – Apprendre à programmer simplement

*      Maple – Apprendre à programmer (maths)

*      Historique de l’aventure informatique

Sites

*      Théorie des nombres en Python avec sympy.ntheory – Très facile.net

*      Cours Python – OpenClassrooms 

*      Programmation Python – WikiBooks

Cette page

http://villemin.gerard.free.fr/aInforma/PYTHON/ThNombre.htm