Ramiro Torres Noviembre 2015 ESTRUCTURA DE DATOS Y

Ramiro Torres
Noviembre 2015
ESTRUCTURA DE DATOS Y ALGORITMOS
TRABAJO 1
Ejercicio 1 Se desea clasificar los números en aquellos que son primos y aquellos que no.
Escribir una clase que reciba N1 , N2 ∈ N e identifique los números primos y no primos en
un intervalo [N1 , N2 ] y los almacene. Usar la declaración:
class clasificacion
{
private:
int N1;
int N2
vector<int> primos;
vector<int> no_primos;
public:
//constructores y destructores
//funciones miembro: presentación de números primos, presentación de números
no primos, cantidad de cada tipo de números, calcular la suma de primos
// sobrecarga de operadores <<,>>,+(Unión sin duplicados), - (intersección)
};
Ejercicio 2 Dados dos números primos (p, q), se dice que son primos gemelos si q − p = 2.
Por ejemplo, (17, 19) son primos gemelos. Se conjetura que hay infinitas parejas de primos
gemelos, aunque todavı́a no hay demostración de este hecho. La constante de Brun B2 , es
el valor al que converge la suma de los inversos de los números primos gemelos:
1 1
1 1
1
1
1
1
B2 = ( + ) + ( + ) + ( + ) + ( + ) + . . . . . . ≈ 1.902160
3 5
5 7
11 13
17 19
1. Escribir una clase para almacenar números primos gemelos.
class primos_gemelos
{
private:
int p;
int q;
public:
.......
};
2. Usando la clase anterior, escribir otra clase que permita almacenar números primos
gemelos
class vector_pg:public vector<primos_gemelos>
{
private:
int n;// dimensión
.......
};
1
el constructor debe recibir un entero n ∈ Z + , n >= 5 y almacenar los primeros n
primos gemelos
3. Sobrecargar los operadores >>, <<.
4. Escribir una función miembro para calcular el valor de la constante de Brun. Usar la
declaración:
double constante_Brun();
2