• No se han encontrado resultados

Denotemos los n´umeros primos en forma ascendente como p1, p2, p3

N/A
N/A
Protected

Academic year: 2022

Share "Denotemos los n´umeros primos en forma ascendente como p1, p2, p3"

Copied!
2
0
0

Texto completo

(1)

1 C´omputo Cient´ıfico II - CO2112 - Laboratorio 3

En matem´aticas, un n´umero primo es un n´umero natural mayor que 1 que tiene

´

unicamente dos divisores distintos: ´el mismo y el 1. Por el contrario, los n´umeros com- puestos son los n´umeros naturales que tienen alg´un divisor aparte de s´ı mismo y del 1. El n´umero 1, por convenio, no se considera ni primo ni compuesto.

1. Dado un n´umero entero n mayor que 1, escribir una funci´on en ANSI C de nom- bre “metodo1” que determine los n´umeros primos menores o iguales a n (tabla de Erat´ostenes), donde n es un par´ametro de entrada de la funci´on:

(a) Se inicializa el arreglo “primos” de n´umeros primos en la secuencia de n´umeros impares entre 3 y n. Esto es as´ı porque sabemos que los n´umeros pares distintos de 2 NO son primos.

(b) Se eliminan los m´ultiplos impares de todos los n´umeros declarados como primos (ya que sabemos que los m´ultiplos pares de dichos n´umeros no est´an en el arreglo “primos”).

(c) Finalmente, se agrega el 2 al comienzo de la lista de n´umeros primos.

El vector de n´umeros primos debe escribirse en un archivo de nombre “salida.txt”

en forma matricial con filas de 10 elementos.

2. Denotemos los n´umeros primos en forma ascendente como p1, p2, p3, · · · , es decir, p1 = 2, p2 = 3, p3 = 5, etc.

Si se tienen p1, p2, · · · , pi1 los primeros i − 1 primos, para i > 2, el primo siguiente se puede calcular f´acilmente como:

(a) sea x = pi1+ 2 el pr´oximo posible n´umero primo

(b) dividir x por cada uno de los primos anteriores p que satisfacen p2 < x

(c) si x no es divisible por ninguno de esos primos, entonces pi = x (es decir, x es el siguiente primo). En cualquier otro caso, reemplazar x por x + 2 y repetir los pasos (b) y (c)

Elaborar una funci´on en ANSI C de nombre “metodo2” para calcular y almacenar en un vector los primeros n primos, donde n es un parametro de entrada de la funci´on y es mayor o igual a 3. Se supondr´a que los primos p1 = 2 y p2 = 3 son conocidos. Escribir el vector de n´umeros primos en el archivo “salida.txt” en forma matricial con filas de 10 elementos.

USB, CO2112, Profs. Buitrago y Jim´enez

(2)

2

3. Escribir una funci´on “main” en ANSI C que solicite al usuario un n´umero n > 2 y contenga los llamados a las funciones “metodo1” y “metodo2”. Se espera que el programa verifique exhaustivamente la pertinencia del n´umero n. Adicionalmente usar´a la funci´on clock() y la variable CLOCKS PER SEC de la libreria time.h de ANSI C para calcular y reportar, tanto por pantalla como en el archivo “salida.txt”, el tiempo que toman las funciones “metodo1” y “metodo2” para calcular los n´umeros primos menores o iguales a n.

La entrega debe ocurrir a m´as tardar a las 11:59 pm del jueves 21 de febrero, enviando al correo electr´onico del prof. Jim´enez (oswjimenez@gmail.com) un archivo comprimido (zip o rar) de nombre:

“CO2112 lab02 apellido nombre”.

Este archivo s´olo debe contener los c´odigos fuentes.

Observaciones generales

• ¿C´omo escribir un programa?

1. Especificar el problema.

2. Analizar y dividir ´este en una serie de pasos que conduzcan a la soluci´on, es decir, dise˜nar un algoritmo.

3. Escribir el c´odigo en ANSI C.

4. Compilar y corregir posibles errores de sintaxis.

5. Ejecutar el programa, verificando que funciona para todos los casos previstos en el dise˜no del algoritmo.

• El programa debe estar debidamente documentado. Recuerde que, en general, no es necesario (ni deseado) comentar cada l´ınea de c´odigo escrita. La mayor´ıa de las veces, las l´ıneas individuales hablan por s´ı solas en cuanto al trabajo puntual que realizan. Un buen comentario es aquel que nos dice cu´al es la raz´on por la cual la l´ınea est´a escrita de cierta manera y c´omo encaja eso dentro del contexto completo del programa.

USB, CO2112, Profs. Buitrago y Jim´enez

Referencias

Documento similar

En esta lista de problemas trabajamos con la construcci´ on de n´ umeros complejos (como pares ordenados de los reales) y con su representaci´ on en la forma bin´ omica (llamada

En esta lista de problemas trabajamos con n´ umeros complejos en la forma polar (lla- mada tambi´ en la forma trigonom´ etrica)1. El sentido geom´ etrico del valor absoluto de n´

N´ umeros complejos, funciones trigonom´ etricas, valor absoluto de n´ umeros complejos, circunferencia unitaria y divisibilidad de un n´ umero real entre otro1. Criterio de la

Dado un n´ umero α ≥ 0, denotemos por P α al punto de la circunferencia unitaria que se obtiene del punto (1, 0) despu´ es de moverse a lo largo de la circunferencia contra

Divisibilidad de n´ umeros enteros: definici´ on formal... Los divisores comunes de dos n´ umeros

Para representar los n´umeros reales por medio de los puntos de una recta, se elige un punto para representar al 0 y otro a la derecha del 0 para representar el 1, como se indica en

Un cuadrado m´ agico es una cuadr´ıcula, donde cada cel- da contiene un n´ umero entero, tal que la suma de las filas, columnas y diagonales sea, en cada caso, la misma.. Se extraen

Como hemos visto en el ejemplo anterior, existen trazos que no pueden ser medidos con n´ umeros racionales, sin embargo pueden ser copiados sobre la recta num´erica, determiando en