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
© Copyright 2024