Analyse sujet emlyon maths approfondies 2026 ECG

Analyse du sujet emlyon mathématiques approfondies 2026 ECG

Virageprépa

Le sujet emlyon de mathématiques approfondies (code 295, BCE) est tombé mercredi 22 avril 2026, de 14h à 18h. Deux problèmes, sept pages denses, pas de calculatrice. Le premier porte sur l’optimisation de la trace : un détour par l’algèbre linéaire et les projections orthogonales qui débouche sur une inégalité de trace de type Ky Fan. Le second propose une très belle étude de marche aléatoire simple symétrique via les fonctions génératrices, le lemme de Borel-Cantelli et la formule de Stirling.

Niveau global exigeant, clairement au-dessus du sujet emlyon maths appliquées du même jour. Le candidat visant une école du top 10 SIGEM doit avoir traité une grande partie des deux problèmes. Celui qui vise emlyon, Audencia ou Grenoble doit avoir bien entamé les deux.

Chez Virage Prépa, on te propose ici une analyse à chaud : structure globale, décryptage problème par problème, techniques-clés à mobiliser, pièges classiques.

Structure générale du sujet

Deux problèmes indépendants, sur 7 pages, pour 4 heures.

Le problème 1 relève de l’algèbre linéaire et de l’optimisation. La partie 1 étudie un cas particulier (n = 2, matrice « tout à un »). La partie 2 généralise à une inégalité sur la trace Tr(tMAM) pour A symétrique et M à colonnes orthonormales. Problème très structuré qui construit pas à pas un résultat profond d’optimisation matricielle.

Le problème 2 est un problème de probabilités. La partie 1 contient quatre lemmes préliminaires (fonction génératrice, Borel-Cantelli, invariance en loi, produit de Cauchy). La partie 2 porte sur la marche aléatoire simple symétrique, la récurrence de la marche (théorème de Pólya en dimension 1), le temps d’atteinte T du demi-axe positif et une conjecture sur l’existence de E(T). Problème riche qui culmine sur une intuition centrale des probabilités : une variable aléatoire peut exister presque sûrement sans admettre d’espérance.

Les poids sont équilibrés entre les deux problèmes. Sujet « beau » dans la tradition emlyon maths approfondies : exigeant, cumulatif, classique dans ses techniques mais ambitieux dans sa construction.

Problème 1 : optimisation de la trace

Partie 1 : un exemple (n = 2)

La matrice A = (1 1 ; 1 1) est symétrique de rang 1. Théorème spectral : diagonalisation en base orthonormée. Calcul : Tr(A) = 2, det(A) = 0, donc les valeurs propres sont 2 et 0. Vecteur propre pour 2 : (1,1)/√2. Pour 0 : (1,−1)/√2. D’où Q = (1/√2)(1 1 ; 1 −1) et D = diag(2, 0).

C’est une question de démarrage, à traiter en 5 minutes. Attention à l’ordre décroissant imposé des valeurs propres (2 puis 0), sans quoi le reste de l’exercice dérape.

Question 2 : étude de φ. L’expression φ(x, y) = (x/√(x²+y²), y/√(x²+y²)) A transposée se simplifie directement. Le vecteur unitaire (x, y)/‖(x,y)‖ appliqué à A donne la forme quadratique associée à A, normalisée. Le calcul donne effectivement φ(x, y) = 1 + 2xy/(x²+y²). La régularité C² découle de la composition de fonctions C² sur R²  {(0,0)}.

Question 2b : points critiques. Le calcul des dérivées partielles montre que tous les points de la diagonale x = y (hors origine) sont critiques. C’est une infinité, typique des fonctions invariantes par homothétie.

Question 2c : homogénéité de degré 0. On a bien φ(αx, αy) = φ(x, y) pour α ≠ 0. Vérification directe : les α se simplifient dans le numérateur et le dénominateur.

Question 2d : maximum global. Par homogénéité, on peut se restreindre au cercle unité S₁, compact de R². La fonction φ y est continue, donc atteint son maximum. Sur S₁, x² + y² = 1, donc φ(x, y) = 1 + 2xy. Le max de xy sur le cercle est atteint quand x = y = ±1/√2, avec xy = 1/2. Donc max φ = 2. Points où le max est atteint : (1/√2, 1/√2) et (−1/√2, −1/√2), plus toutes les homothétiques. On obtient ainsi les demi-droites y = x (côté positif et négatif).

Observation importante : le maximum de φ coïncide exactement avec la valeur propre maximale de A. C’est un cas particulier d’un résultat général que la partie 2 va démontrer.

Partie 2 : inégalité sur la trace

Question 3 : Tr(tBB) = Tr(BtB). Classique. On calcule (tBB){i,j} = Σ_k B{k,i}B_{k,j}, donc (tBB){i,i} = Σ_k b{k,i}². La trace somme tous ces carrés, donc Tr(tBB) = Σ_{i,k} b_{k,i}². Par symétrie, Tr(BtB) = Σ_{k,i} b_{k,i}². Même quantité. CQFD en 3 lignes.

Question 4 : représentation graphique. D = [0,1]² (carré unité fermé). C₁ ∩ D = {(x₁, x₂) ∈ [0,1]² : x₁ + x₂ = 1} est un segment diagonal. C₂ ∩ D = {(1, 1)} est un point unique. Dessin facile, souvent bâclé à tort. Il vaut 1 point.

Question 5. f_Λ(x₁, …, x_n) = Σλᵢxᵢ est linéaire et continue, donc atteint son max sur D ∩ C_k qui est compact. Sous la contrainte Σxᵢ = k et x_i ∈ [0,1], le max de Σλᵢxᵢ s’obtient en saturant les composantes associées aux plus grandes valeurs λᵢ. Si Λ n’est pas colinéaire à (1, …, 1), on distingue les λᵢ. Le point maximum est l’affectation « tout ou rien » où les k plus grandes λᵢ sont saturées à 1. Exemple : si λ₁ ≥ λ₂ ≥ … ≥ λ_n, le max vaut λ₁ + … + λ_k, atteint en (1, 1, …, 1, 0, …, 0).

Question 6 : rang et trace d’une projection. Soit π une projection de R^n. On pose R^n = F ⊕ G avec F = Im(π) et G = Ker(π), puis on construit une base adaptée. Dans cette base, la matrice de π est diagonale par blocs (I_r sur F, 0 sur G), donc Tr(P) = r = rg(π). Résultat classique, démonstration qu’il faut savoir refaire au propre.

Si π est orthogonale : ‖π(x)‖² = ⟨π(x), π(x)⟩ = ⟨π(x), x⟩ (car π² = π et tπ = π), qui est majoré par ‖π(x)‖ × ‖x‖ via Cauchy-Schwarz. D’où ‖π(x)‖ ≤ ‖x‖. Classique.

Pour les p_{i,i} : p_{i,i} = ⟨π(e_i), e_i⟩ = ‖π(e_i)‖² (car π est une projection orthogonale, donc ⟨π(x), x⟩ = ‖π(x)‖²). Or 0 ≤ ‖π(e_i)‖² ≤ ‖e_i‖² = 1. Donc p_{i,i} ∈ [0, 1].

Questions 7 à 10 : construction du résultat central. A symétrique de rang r, donc diagonalisable en base orthonormée : A = QDtQ. Soit M à colonnes orthonormales dans R^n (M ∈ M_{n,k}(R)).

Question 8 : tMM = I_k car les colonnes sont orthonormales.

Question 9 : si toutes les λᵢ valent λ₁ (c’est-à-dire A = λ₁I), alors Tr(tMAM) = λ₁ Tr(tMM) = λ₁ k.

Question 10 : dans le cas général où A a au moins deux valeurs propres distinctes, on pose X = tQM et P = XtX.

Question 10a : P = XtX. On a tP = t(XtX) = XtX = P (symétrique). Pour P², on calcule P² = XtXXtX = X(tXX)tX. Or tXX = tMQtQM = tMM = I_k. Donc P² = XtX = P. Ainsi P est bien une projection orthogonale.

Question 10b : Ker(P) = Ker(tX). En effet, Py = 0 équivaut à XtXy = 0, donc tX y ∈ Ker(X). Comme X est injective (ses colonnes sont orthonormales donc libres), Ker(P) = Ker(tX). On en déduit rg(P) = n − dim(Ker(tX)) = rg(X) = k.

Question 10c : Tr(tMAM) = Tr(tM Q D tQ M) = Tr(tX D X) = Tr(X tX D) (par cyclicité de la trace) = Tr(PD).

Or P est une projection orthogonale de rang k, symétrique, de diagonale dans [0,1] (question 6c), et Σ p_{i,i} = rg(P) = k. Les p_{i,i} forment donc un élément de D ∩ C_k (contrainte x_i ∈ [0,1] et somme égale à k).

Tr(PD) = Σ p_{i,i} λᵢ, majoré par max f_Λ sous la contrainte D ∩ C_k. Donc Tr(tMAM) ≤ Σ_{i=1}^k λᵢ (somme des k plus grandes valeurs propres).

Question 10d : l’égalité est atteinte si les p_{i,i} valent 1 pour les k premiers indices et 0 ailleurs, ce qui correspond à prendre pour M les k premiers vecteurs propres (les C_i = V_i). On a alors Tr(tMAM) = Σ_{i=1}^k λᵢ.

Question 10e : retour à la partie 1. Dans le cas n = 2, A = (1 1 ; 1 1) de valeurs propres 2 et 0, la valeur maximale de Tr(tMAM) pour k = 1 est λ₁ = 2, atteinte pour M égal au premier vecteur propre. C’est exactement le résultat trouvé en question 2d. Cohérence confirmée.

Commentaire global. Ce problème 1 est un grand classique des sujets emlyon : une construction pédagogique en deux temps (cas particulier illustratif puis généralisation), des outils standards (théorème spectral, projections), un résultat non-trivial à la fin (théorème de Ky Fan sous forme simplifiée). Les candidats bien préparés le traitent intégralement en 1h45 à 2h.

Problème 2 : fonction génératrice et marche aléatoire

Partie 1 : les quatre lemmes

Question 1 : fonction génératrice d’une v.a.d. entière. G_W(t) = Σ P(W=n) t^n pour t ∈ [0,1]. Convergence : t ≤ 1, donc t^n ≤ 1, et la série est majorée par Σ P(W=n) = 1 (ou par une somme qui converge). Croissance : chaque terme P(W=n) t^n est croissant en t, donc G_W aussi.

Limite en 1⁻ : G_W croissante et majorée par G_W(1), donc admet une limite ℓ ≤ G_W(1).

Majorations doubles : encadrement classique par des sommes partielles. Par passage à la limite, on obtient Σ_{n=0}^m P(W=n) ≤ ℓ ≤ G_W(1), puis en faisant m → +∞, ℓ = G_W(1). Donc G_W est continue en 1.

G’_W : la dérivée terme à terme. La série Σ n P(W=n) t^{n−1} converge pour t ∈ [0,1[ (c’est même sur ce domaine qu’on démontre la dérivabilité). En t = 1, la dérivée à gauche peut être finie (si E(W) < ∞) ou infinie (si E(W) = +∞). Point-clé pour la question 14c.

Question 2 : Borel-Cantelli (seconde partie). Si les A_n sont mutuellement indépendants et Σ P(A_n) = +∞, alors P(∩n ∪{k≥n} A_k) = 1.

Question 2a : 1 − x ≤ exp(−x). Simple étude de fonction.

Question 2b : P(∪{k=n}^m A_k) ≥ 1 − exp(−Σ{k=n}^m P(A_k)). On utilise P(∪) = 1 − P(∩ complémentaires) = 1 − Π(1 − P(A_k)) par indépendance. Cette expression est supérieure ou égale à 1 − Π exp(−P(A_k)) = 1 − exp(−Σ P(A_k)). Beau.

Question 2c : si Σ P(A_n) diverge, pour tout n fixé, Σ_{k≥n} P(A_k) = +∞. Donc exp(−Σ) tend vers 0 quand m tend vers +∞, ce qui donne P(∪_{k≥n} A_k) = 1. Et P(∩n ∪{k≥n} A_k) est une intersection dénombrable d’événements de probabilité 1, donc 1.

Question 3 : invariance en loi par décalage. (W_k, W_k+W_{k+1}, …, Σ W_i) a même loi que (W_1, W_1+W_2, …, Σ W_i) parce que les W_i sont iid. La loi conjointe d’un n-uplet d’iid dépend uniquement de la position relative, pas de l’indice de départ.

Question 4 : produit de Cauchy. Avec c_n = Σ a_k b_{n−k}, on démontre Σ c_k ≤ (Σ a_i)(Σ b_j) ≤ Σ_{k=1}^{2n} c_k. On en déduit la convergence (par encadrement) et l’égalité à la limite : Σ c_k = (Σ a_i)(Σ b_j). Classique.

Partie 2 : marche aléatoire simple symétrique

Contexte : (X_n) iid avec P(X_n = 1) = P(X_n = −1) = 1/2. S_0 = 0 et S_n = X_1 + … + X_n. C’est la marche aléatoire simple symétrique sur Z, étudiée par Pólya (1921) dans son théorème fondateur de récurrence des marches.

Question 5. E(X_n) = 0, V(X_n) = 1. E(S_n) = 0, V(S_n) = n (par indépendance).

Question 6 : loi des grands nombres. S_n/n tend vers 0 en probabilité. Application directe de Bienaymé-Tchebychev : P(|S_n/n| ≥ ε) ≤ V(S_n/n)/ε² = 1/(nε²), qui tend vers 0. Résultat classique qui ne surprend personne.

Question 7 : simulations Python. simul_X() renvoie 1 ou −1 avec probabilité 1/2.

def simul_X():
    if rd.random() < 0.5:
        return 1
    else:
        return -1

simul_S(n) somme n simul_X indépendants.

def simul_S(n):
    S = 0
    for k in range(n):
        S = S + simul_X()
    return S

Question 8. (X_k + 1)/2 prend ses valeurs dans {0, 1} et suit une loi de Bernoulli de paramètre 1/2. S_n = 2 Σ (X_k+1)/2 − n = 2 × (nombre de +1) − n. Cette transformation ramène l’étude à un comptage binomial.

Question 9 : loi de S_n.

Question 9a : P(S_n = i) = 0 si i et n n’ont pas la même parité. En effet, S_n et n ont la même parité (somme de n variables ±1).

Question 9b : si i et n ont la même parité, le nombre de +1 est k = (n+i)/2 ∈ [0, n]. Donc P(S_n = i) = C(n, (n+i)/2) × (1/2)^n. C’est une loi binomiale réétiquetée.

Question 10 : Stirling et récurrence. Formule de Stirling : n! ~ √(2πn) (n/e)^n.

Question 10a : P(S_{2n} = 0) = C(2n, n) (1/2)^{2n}. On substitue Stirling. Après simplification, C(2n, n) ~ 4^n/√(πn). Donc P(S_{2n} = 0) ~ 1/√(πn).

Question 10b : Σ P(S_{2n} = 0) se comporte comme Σ 1/√(πn), qui diverge (série de Bertrand). Les événements A_n = [S_{2n} = 0] ne sont pas indépendants stricto sensu, mais une version adaptée de Borel-Cantelli (ou un argument via la question 2c bien appliqué) permet de conclure que presque sûrement, la marche repasse une infinité de fois en 0. C’est le théorème de récurrence de Pólya en dimension 1.

Questions 11 à 13 : temps T et équation fonctionnelle. T est le temps du premier passage strict du demi-axe positif (S_n > 0 pour la première fois). Si la marche reste négative ou nulle tout le temps, T = −1 (événement peu probable d’après la récurrence).

Question 11a : P(T=1) = P(S_1 > 0) = P(X_1 = 1) = 1/2.

Question 11b : explicitation de l’événement [T = n]. Pour n ≥ 2, T = n signifie que S_j ≤ 0 pour tout j ∈ [1, n−1] et S_n = 1 (car S_n doit être strictement positif et saute de ±1, donc vaut 1).

Question 11c : par parité, P(T = n) = 0 pour n pair. Pour que S_n = 1, il faut que n soit impair.

Question 12 : événement R_k. R_k = [S_1 = −1] ∩ (∩_{j=2}^k [S_j ≤ −1]) ∩ [S_{k+1} = 0]. Interprétation : la marche commence par un pas descendant (X_1 = −1), reste en-dessous de 0 pendant k étapes, puis revient à 0 à l’étape k+1. C’est le temps de premier retour à 0 depuis le bas.

Question 12b : P(R_k) = (1/2) P(T = k). Après le premier pas en −1, la marche décalée a même loi que S_n, et le premier moment où elle atteint +1 par rapport à son origine est T = k. D’où le facteur 1/2 (probabilité du pas initial négatif).

Question 12c : décomposition de [T = n+1] en concaténation d’un retour à 0 suivi d’un nouveau départ.

Question 13 : équation fonctionnelle centrale. La convolution de Cauchy (question 4) appliquée à la relation P(T = n+1) = (1/2) Σ P(T = k)P(T = n − k) donne G_T(t)² = Σ … t^n, puis après manipulation, tG_T(t)² = 2G_T(t) − t.

Question 13b : on résout tG_T(t)² − 2G_T(t) + t = 0. On obtient G_T(t) = (1 − √(1 − t²))/t pour t ∈ ]0, 1[. Formule fermée.

Question 13c : G_T(1) = 1. Donc P(T = −1) = 1 − G_T(1) = 0. Presque sûrement T prend une valeur finie positive : la marche finit par dépasser 0.

Question 13d : calcul de G’_T(t). On obtient G’_T(t) qui tend vers +∞ quand t tend vers 1⁻. Donc E(T) = lim G’_T(t) = +∞.

Question 14 : simulations Python et conjecture

simul_T() : boucle while qui simule la marche jusqu’au premier dépassement de 0. Par précaution, on peut fixer un maximum d’itérations pour éviter une boucle infinie (même si elle s’arrête presque sûrement).

def simul_T():
    S = 0
    n = 0
    while S <= 0:
        n = n + 1
        S = S + simul_X()
    return n

Question 14b : la fonction mystere(N) calcule la moyenne empirique de simul_T sur N simulations. Les valeurs affichées (67.88, 1246.38, 285.62, 8181.62, 31.36, 4394.42, 117.58) sont extrêmement variables. C’est la signature d’une distribution à queue lourde, avec variance (et même espérance) infinie : la moyenne empirique ne se stabilise pas avec N = 1000.

Conjecture : T n’admet pas d’espérance finie. Cohérent avec la question 13d (G’_T(1) = +∞).

Question 14c : conjecture sur le lien entre l’existence de E(T) et les propriétés de G_T. E(T) existe et est finie si et seulement si G’_T(1⁻) < +∞. C’est un résultat général sur les fonctions génératrices qui caractérise les moments via le comportement en 1.

Commentaire global. Ce problème 2 est magnifique. On y voit en action l’idée que la récurrence d’une marche aléatoire n’empêche pas l’espérance du temps de retour d’être infinie. C’est une subtilité profonde des probabilités souvent méconnue. Les questions Python finales (14b) donnent une intuition numérique de cette subtilité par la variabilité de la moyenne empirique. Très pédagogique.

Techniques clés à maîtriser

Le sujet confirme ce qu’emlyon maths approfondies attend d’un candidat.

Côté algèbre : le théorème spectral des matrices symétriques (diagonalisation en base orthonormée), la manipulation des projections orthogonales (en particulier P² = P, tP = P, rg = tr), les propriétés de la trace (invariance par permutation cyclique Tr(AB) = Tr(BA)) et la notion d’inégalité de trace.

Côté probabilités : les fonctions génératrices (définition, convergence, continuité en 1, dérivabilité et lien avec les moments), le lemme de Borel-Cantelli dans ses deux versions, la formule de Stirling et ses applications asymptotiques, les marches aléatoires simples et leur récurrence, et le produit de Cauchy de séries.

Côté Python : simulations de lois discrètes (bornées et non bornées), gestion des boucles conditionnelles (while) pour des temps d’arrêt, estimation de quantités par moyenne empirique.

Tous ces thèmes sont au programme officiel ECG voie générale maths approfondies. Aucun hors-programme.

Les pièges à éviter

Premier piège : bâcler la justification de la diagonalisation. En questions 1 et 7, il faut énoncer le théorème spectral des matrices symétriques et l’appliquer proprement. Dire « A diagonalisable car symétrique » sans référence au théorème spectral coûte des points.

Deuxième piège : la projection orthogonale. En questions 6 et 10, ne pas confondre projection (P² = P) et projection orthogonale (en plus tP = P). Les deux propriétés sont nécessaires.

Troisième piège : la formule de Stirling. En question 10a, beaucoup de candidats se trompent sur la puissance 2n par rapport à n dans le développement. Il faut rester rigoureux : C(2n, n) = (2n)!/(n!)² et substituer étape par étape.

Quatrième piège : la parité dans la marche aléatoire. Oublier la contrainte « i et n de même parité » fait chuter la question 9. Réfléchis systématiquement à la parité dans les marches.

Cinquième piège : l’équation fonctionnelle de G_T. Le calcul en question 13a demande rigueur sur les indices. Une ligne sautée et la relation ne tombe plus. Prends le temps, vérifie au brouillon.

Sixième piège : sauter le problème 2 par peur des probabilités. Les quatre questions préliminaires (partie 1) sont très accessibles. Ce sont 5 points presque garantis pour qui s’y met. Les sauter par anticipation de difficulté est une perte sèche.

Septième piège : Python. En question 14, la fonction simul_T() doit correctement gérer le cas où la marche tarde à dépasser 0 (pas de plantage). Teste mentalement ton code avant de le recopier.

FAQ sur le sujet emlyon Maths Approfondies 2026

Haut, clairement au-dessus du sujet maths appliquées tombé le même jour. Comparable aux sujets emlyon 2022 et 2024. Deux problèmes ambitieux, aucune difficulté gratuite, mais une progression pédagogique soignée dans chaque problème.

Pour emlyon maths approfondies, la moyenne d’admission ces dernières années tourne autour de 11 à 12. Bonne copie : 13 à 14. Pour viser le top 5 SIGEM (HEC, ESSEC, ESCP maths approfondies) : 15 ou plus.

Le problème 1 est plus abordable (construction pédagogique claire, outils standards). Le problème 2 est plus ambitieux, avec notamment les questions 10 à 13 du problème 2 techniquement exigeantes. Recommandation : traiter le problème 1 en premier, à fond, puis attaquer la partie 1 du problème 2 (très accessible) avant de se lancer dans la partie 2.

Non. Les questions 13b à 13d sont les plus difficiles du sujet. Le jury le sait. Tu peux perdre 3 ou 4 points sur ces questions et avoir encore une bonne note si le reste est solide.

Oui. Quatre questions Python dans le sujet (7a, 7b, 14a, 14b). Chacune vaut 1 à 2 points. Les candidats qui sautent l’ensemble de Python perdent 6 à 8 points, ce qui peut faire basculer entre 10 et 14.

Elle devient évidente à la lumière de 13d (G’_T(1) = +∞) et de l’intuition probabiliste (queue lourde). Formulée clairement : E(T) est finie si et seulement si G’_T(1⁻) est finie. Bonus : faire le lien avec la question 1f où on admet que G_W est C¹ sur [0, 1[, avec limite à gauche en 1 potentiellement infinie.

emlyon maths approfondies se situe entre Ecricome (plus accessible) et HEC/ESSEC (plus exigeants). Un candidat qui maîtrise emlyon maths approfondies est bien préparé pour Ecricome. Il doit encore muscler sa vitesse et sa rigueur pour HEC I et II.

Non. Les très bonnes copies terminent souvent à 85 ou 90 %. Les copies admises à emlyon terminent généralement à 60 ou 70 %. Mieux vaut traiter 70 % avec rigueur que 100 % avec des approximations.

Tu sors de l’épreuve. Trois recommandations à chaud.

D’abord, ne surévalue pas ta performance. En maths approfondies, l’impression à la sortie est souvent trompeuse. Les candidats qui ont traité 60 % du sujet avec rigueur ont généralement de meilleures notes que ceux qui ont griffonné partout. Le correcteur valorise la qualité de chaque démonstration.

Ensuite, bascule vite sur les épreuves qui restent. HEC Maths II est l’épreuve la plus décisive pour les admissibilités parisiennes. ESSEC Maths II, Ecricome et les oraux sont autant d’occasions de reprendre les thèmes vus aujourd’hui : fonctions génératrices, marches aléatoires, projections, trace. Les techniques mobilisées reviennent systématiquement.

Enfin, si tu veux un retour précis sur ta copie, un diagnostic sur la suite du concours ou un accompagnement sur les oraux, réserve un diagnostic gratuit avec un mentor Virage Prépa. 30 minutes, sans engagement, avec un admis HEC, ESSEC ou ESCP.

Réserve ton diagnostic gratuit de 30 min avec un mentor Virage Prépa (admis HEC, ESSEC, Centrale, X ou ENS).

Comprenez pourquoi les meilleurs étudiants choisissent ViragePrépa

N’hésitez pas à nous adresser vos demandes à l'aide de ce formulaire de contact. Nous vous répondrons dans les plus brefs délais.

Comprenez pourquoi les meilleurs étudiants choisissent ViragePrépa

N’hésitez pas à nous adresser vos demandes à l'aide de ce formulaire de contact. Nous vous répondrons dans les plus brefs délais.