C/Visual C - 100 numeros primos en un Array.

 
Vista:
sin imagen de perfil

100 numeros primos en un Array.

Publicado por Emanuel (6 intervenciones) el 28/10/2016 01:51:24
Hola, soy nuevo en este foro, y la verdad estoy sorprendido!!!

Hace una semana comencé con la programación en C y quisiera que me ayudaran con este problema:

// Necesito conseguir los números primos entre 1 y 100 y guardarlos en un Array !!! y mostrarlos en pantalla!!!

Estuve intentando, pero la verdad no me sale!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Dionicio
Val: 101
Ha disminuido 1 puesto en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

100 numeros primos en un Array.

Publicado por Dionicio (22 intervenciones) el 28/10/2016 01:56:03
Bienvenido Emanuel! Si pudieras mostrar lo que llevas hecho se nos haría más fácil ayudarte. :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

100 numeros primos en un Array.

Publicado por Emanuel (6 intervenciones) el 28/10/2016 20:56:16
Muchas gracias!!! ahi subi el codigo que vengo trabajando!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 270
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

100 numeros primos en un Array.

Publicado por Diego (150 intervenciones) el 28/10/2016 03:41:25
¿Sabes como generar números primos en la vida real?.
Cuando encuentres la forma de hacerlo en la vida real intenta plasmarlo en un código y si sigues teniendo problemas brindanos el codigo que estas desarrollando para analizarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

100 numeros primos en un Array.

Publicado por Emanuel (6 intervenciones) el 28/10/2016 20:55:46
Hola sii ahi puse el codigo que genere!!! gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

100 numeros primos en un Array.

Publicado por dario (13 intervenciones) el 28/10/2016 06:04:42
Te dejo este pseudocodigo, luego lo pasas a C.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
num = [] //num es un array
 
funcion primo(n)
	c = 0 //contador de divisores
	para i = 1 hasta n
		si n mod i == 0
			c = c+1 //si es divisor incrementamos
		fin-si
	fin-para
 
	si c == 2 //si el numero de divisores es 2, entonces el numero es primo
		r = T //devuelve verdadero
	sino
		r = F //devuelve falso
	fin-si
fin-primo
 
//principal
para i = 1 hasta 100
	si primo(i)
		num[i] = i //si el numero es primo lo agregamos al array
	fin-si
fin-para
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

100 numeros primos en un Array.

Publicado por Emanuel (6 intervenciones) el 28/10/2016 20:54:56
Muchas gracias!!! ahi pruebo este metodo!!! is muy parecido al que acabo de poner!!! muchas gracias!!!

es increible este foro!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gabriel
Val: 21
Ha aumentado 1 puesto en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

100 numeros primos en un Array.

Publicado por Gabriel (10 intervenciones) el 28/10/2016 08:39:02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<stdio.h>
int PRIMO(int numero);
 
int main(){
 
int i, numero,cont=0,x;
 
	printf("Digite un numero: ");
	scanf("%i",&numero);
	int PRIMO(int numero);
 
	x = PRIMO(numero);
 
	if (x==0){
		printf("\nEl Numero es Compuesto");
	}
	else{
		printf("\nEl Numero es Primo");
	}
 
	return 0;
}
 
int PRIMO(int numero){
	int I=0;
	int cont=0;
	for(I=1;I<=numero;I++){
		if(numero%I==0){
			cont++;
		}
	}
	if(cont>2){
		return 0;
	}
	else{
		return 1;
	}
 
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

100 numeros primos en un Array.

Publicado por Emanuel (6 intervenciones) el 28/10/2016 20:51:38
Muchas gracias!!! sii ahi puse mi codigo para que lo vean!!! y el error que me tira al ejecutarlo!!!

lo hice con un array.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

100 numeros primos en un Array.

Publicado por Emanuel (6 intervenciones) el 28/10/2016 20:47:19
Este es mi codigo!!! me tira 0 errores!!! pero al final me tira un critico error!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
 
int main (){
 
	int i, x, con=0, slot=0; double res=0;
	int v[100];
 
 
	for (i=0 ; i<=100; i ++){                                                                // i = nominador
		for(x=0; x<=100; x++){                                                         //x = denominador
		    res=i%x;
			if(res==0){                                                                       // x varia 100 veces.   si el modulo de i y x es 0 con se eleva en 1
				con++;
			}
 
 
 
		}                                                                                                   // termina este For
 
		if(con==2){                                                                               // si con es igual a 2, es que i solo tiene 2 divisores posibles, 
			v[slot]=i;                                                                       // slot determina la pocision 0 del vector y i como es primo le asigna el valor. 
			slot++;                                                                    //slot se incrementa en 1 para la proxima vez que entre el if.
		}
 
 
	}
	printf("%i",v[100]);                                                                         //imprime en pantalla los valores del vector
	system("Pause");
	return 0;
 
}
 
 
 
//                                                                                   Compilation results...
//--------
//- Errors: 0
//- Warnings: 0
//- Output Filename: C:\Users\Emanuel\Desktop\Practicas C\Array y numeros primos.exe
//- Output Size: 128,126953125 KiB
//- Compilation Time: 0,48s
 
 
// al compilarlo y ejecutarlo me tira una ventana que dice que Array y numeros primos.exe dejo de funcionar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dionicio
Val: 101
Ha disminuido 1 puesto en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

100 numeros primos en un Array.

Publicado por Dionicio (22 intervenciones) el 29/10/2016 03:51:33
Tienes varios errores en tu código, te los comento debajo:

1) Los valores de los contadores en este ejemplo, no pueden ser 0 ya que cuando digas 0/0 o 1/0 --> te dirá error, porque la división entre 0 no está definida.

2)Cuando manejas la variable slot veo que lo haces de una manera no muy práctica, y tu programa estará propenso a más errores.

3) Los vectores NO se imprimen printf("%i",v[100]) sino que se hace con un bucle accediendo a las posiciones posibles en el vector o en su defecto hacer la impresión manual v[0], v[1], v[2]....v[n] (claro usando printf) y así hasta imprimir las posiciones del vector.

Aquí te dejaré un código que es más o menos lo que pides, pero te pido que lo analices y practiques hasta que te quede claro el por qué de los errores. Espero no te desanimes y que esto sea un plus (+) a tu conocimiento.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
 
int main()
{
	int i, x,slot = 0;//Contadores y slot para posicion del número primo en el vector
	int v[100];//Vector que almacenará los números primos
	int res, con;//variable que alamacenará el resto y 'con' será una variable de salida
 
	for(i = 2; i <= 100; i++)
	{
		con = 1;
 
		for(x = 2; x < i && con; x++)//Si 'x' llega al número 'i' sin que el resto de la division sea 0 es primo
		{
			res = i%x;//Almacena el resto de la división
 
			if(res == 0)//Si el resto de la división da 0 antes de llegar al número 'i' saldrá del bucle
			{
				con = 0;
			}
		}
 
		if(con == 1)//Si el número es primo, es decir, 'con' siempre mantuvo el valor de 1
		{
			v[slot] = i;
			slot++;//Aumentamos 'slot', es decir le damos un espacio extra al vector
		}
	}
 
	/*Ejemplo i = 5 -> Cuando i sea dicho valor
	 *       i  % x
	 * res = 5 % 2; -> res = 1
	 * res = 5 % 3; -> res = 2
	 * res = 5 % 4; -> res = 1
	 *  
	 * cuando x llegue e icremente y dirá 5 < 5 pues NO, y como el resto nunca fue 0 el número será primo
	 * */
 
	for(i = 0; i < slot; i++)
	{
		printf("%i, ",v[i]);
	}
 
 
	return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar