martes, 8 de abril de 2008

Problema 3.3

.
Enunciado

1 - Desarrollar un programa que indique si un número (ingresado por teclado) es número primo o no.

2 - Desarrollar un programa que muestre por pantalla los primeros n números primos. El valor n se ingresa por teclado.


La función esPrimo la desarrollaremos en un archivo separado llamado primos.c. Así que a continuación veremos el código del .h que define el prototipo de la función, del archivo que desarrolla la función y el de los dos programas que pide el enunciado.

primos.h
   1:
2:// retorna 1 si n es primo, 0 si no lo es
3:int esPrimo(int);
4:

primos.c
   1:
2:#include<stdio.h>
3:#include "primos.h"
4:
5:int esPrimo(int n)
6:{
7: // recordemos que los booleanos se manejan como
8: // enteros. 0 es false, distinto de cero es true
9: int tieneDiv=0;
10: int i=n-1;
11:
12: while( i>1 && !tieneDiv )
13: {
14: if( n%i == 0 )
15: {
16: tieneDiv=1;
17: }
18: i--;
19: }
20: return !tieneDiv;
21:}
22:

problema1.c
   1:
2:#include<stdio.h>
3:#include "primos.h"
4:
5:int main()
6:{
7: int num;
8: printf("Ingrese un valor: ");
9: scanf("%d",&num);
10:
11: if( esPrimo(num) )
12: {
13: printf("%d es primo\n",num);
14: }
15: else
16: {
17: printf("%d no es primo\n",num);
18: }
19:}
20:

problema2.c
   1:
2:#include<stdio.h>
3:#include "primos.h"
4:
5:int main()
6:{
7: int n, contPrimos=0, i=1;
8:
9: printf("Ingrese un valor: ");
10: scanf("%d",&n);
11:
12: while( contPrimos < n )
13: {
14: if( esPrimo(i) )
15: {
16: // imprime i y luego la incrementa
17: printf("%d\n",i);
18: contPrimos++;
19: }
20: i++;
21: }
22:}
23:







.

No hay comentarios: