Dev - C++ - Ayuda para determinar dígitos primos mediante ciclos

 
Vista:

Ayuda para determinar dígitos primos mediante ciclos

Publicado por jdbg1803 (2 intervenciones) el 23/04/2017 04:12:41
Necesito la colaboración de ustedes para realizar un programa que lea un número entero y determine cuantos dígitos primos tiene.
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
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda para determinar dígitos primos mediante ciclos

Publicado por agustin (522 intervenciones) el 23/04/2017 10:44:34
Lo primero es ir cogiendo cada dígito e ir dividiendo entre 10 y luego ya ves si es primo:
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
#include  <stdlib.h>
 
int main ()
{
	int j, num, digit, contador;
 
	printf ("introduce un numero: ");
	scanf ("%i", &num);
 
	if (num < 0){
		num *= -1;
	}
 
	for (;num != 0;){
		digit=num%10;
		num/=10;
		contador=0;
		for (j=1;j < digit;j++){
			if (digit%j==0){
				contador++;
			}
		}
		if (contador==1){
			printf ("%d es primo\n",digit);
		}else {
			printf ("%d no es primo\n",digit);
		}
	}
	return 0;
}
Ese código leería los dígitos de derecha a izquierda. Si quieres que lea al revés:
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
47
48
#include  <stdlib.h>
#include <math.h>
 
int CalcularExponente (int num)
{
	int exponente=0;
 
	while (num > 0){
		num /= 10;
		exponente++;
	}
	exponente--;
	return exponente;
}
 
int main ()
{
	int j, num, digit, contador, mascara, exponente;
 
	printf ("introduce un numero: ");
	scanf ("%i", &num);
 
	if (num < 0){
		num *= -1;
	}
 
	exponente=CalcularExponente  (num);
	mascara=pow (10, exponente);
 
	for (;num != 0;){
		getchar ();
		digit = (num/mascara);
		num -= (digit*mascara);
		mascara /= 10;
		contador=0;
		for (j=1;j < digit;j++){
			if (digit%j==0){
				contador++;
			}
		}
		if (contador==1){
			printf ("%d es primo\n",digit);
		}else {
			printf ("%d no es primo\n",digit);
		}
	}
	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
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda para determinar dígitos primos mediante ciclos

Publicado por agustin (522 intervenciones) el 23/04/2017 11:11:45
Perdón, no leí que tenia que indicar el número de dígitos.
De derecha a izquierda:
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 CalcularNumDigitos (int num)
{
	int n=0;
 
	while (num > 0){
		num /= 10;
		n++;
	}
	return n;
}
 
int main ()
{
	int j, num, digit, contador, n;
 
	printf ("introduce un numero: ");
	scanf ("%i", &num);
 
	if (num < 0){
		num *= -1;
	}
 
	n=CalcularNumDigitos (num);
	printf ("tiene %d digitos\n", n);
 
	for (;num != 0;){
		digit=num%10;
		num/=10;
		contador=0;
		for (j=1;j < digit;j++){
			if (digit%j==0){
				contador++;
			}
		}
		if (contador==1){
			printf ("%d es primo\n",digit);
		}else {
			printf ("%d no es primo\n",digit);
		}
	}
	return 0;
}

De izquierda a derecha:
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
47
#include  <stdio.h>
#include <math.h>
 
int CalcularNumDigitos (int num)
{
	int n=0;
 
	while (num > 0){
		num /= 10;
		n++;
	}
	return n;
}
 
int main ()
{
	int j, num, digit, contador, mascara, n;
 
	printf ("introduce un numero: ");
	scanf ("%i", &num);
 
	if (num < 0){
		num *= -1;
	}
 
	n=CalcularNumDigitos (num);
	printf ("tiene %d digitos\n", n);
	mascara=pow (10, n-1);
 
	for (;num != 0;){
		digit = (num/mascara);
		num -= (digit*mascara);
		mascara /= 10;
		contador=0;
		for (j=1;j < digit;j++){
			if (digit%j==0){
				contador++;
			}
		}
		if (contador==1){
			printf ("%d es primo\n",digit);
		}else {
			printf ("%d no es primo\n",digit);
		}
	}
	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

Ayuda para determinar dígitos primos mediante ciclos

Publicado por jdbg1803 (2 intervenciones) el 23/04/2017 16:57:14
Compañero muchas gracias por su colaboración le cuento que saco un alma de penas

Dios le conserve su sabiduría
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