M1103 TP6 (ULAM) – Exercice 1

Ecrire les fonctions ci-dessous :

bool estPremier (const unsigned & i);
vector <unsigned> nbPremiersAvantN (const unsigned & N);

La fonction estPremier () teste si l’entier passé en paramètre est un premier.

La fonction nbPremiersAvantN () renvoie dans un tableau, tous les nombres premiers plus petit que le paramètre.

M1103 TP6 (ULAM) – Exercice 2

Ecrire la fonction ci-dessous :

vector <unsigned> nbPremiersAvantN (const unsigned & N, vector<unsigned> & vLesPremiers, const unsigned & M);

Cette fonction ajoute au vecteur vLesPremiers tous les nombres premiers compris entre [N,M[.

M1103 TP6 (ULAM) – Exercice 3

Ecrire les fonctions ci-dessous :

void stockerVectPremiersDansFichier (const vector <unsigned> & vect, const unsigned & N, const string & nomFichier);

void lireVectPremiersDepuisFichier (vector <unsigned> & vect,unsigned & N, const string & nomFichier);

L’objectif est de lire / d’écrire dans un fichier texte le vecteur contenant tous les premiers plus petit que N.
Sur la première ligne, on trouve N, puis tous les autres premiers à raison d’un élément par ligne.

En conséquence le fichier (pour N fixé à 10) sera le suivant :

10
2
3
5
7

M1103 TP6 (ULAM) – Exercice 4

On définit le type CMatrice comme suit :

typedef vector <vector< unsigned>> CMatrice;

Ecrire les fonctions ci-dessous :

void afficherMatrice (const CMatrice & Mat);
void construireMatriceAleatoire (CMatrice & Mat, const unsigned & N);

Dans cette deuxième fonction, N est la taille de la matrice (carrée) et tous les nombres sont générés aléatoirement dans l'intervalle [2, N2+1[.

Ecrire la fonction :

void afficherMatriceUlam (const CMatrice & Mat, const vector <unsigned> & vLesPremiers);

Cette fonction est une modification de la fonction afficherMatrice (). Vous devez afficher le caractère 'X' si le nombre courant est un premier, sinon vous affichez la caractère ' '.

Ecrire la fonction :

void construireMatriceEscargot (CMatrice & Mat, const unsigned & N);

Cette fonction construit la matrice sous-jacente à la spirale d’ULAM.