Hola a todos de nuevo aqui sigo liado estudiando y haciendo un programa que calcule los numeros primos me ha surgido una duda, os la explico a continuacion
El programa lo escribi asi y me daba un resultado erroneo
entonces me puse a trastear posibles soluciones y lo modifique de tal manera y ya funciona perfecto, o eso creo
y me da la duda de porque de la primera forma no funciona si yo pensaba que seria lo mismo , haber si alguien me lo explica
Un saludo
El programa lo escribi asi y me daba un resultado erroneo
Código (c) [Seleccionar]
/*Programa del libro, tema 5
* ejercicio 5.27, pagina 170
* programa que busque los numeros primos*/
#include <stdio.h>
int primo(int x); //prototipo de la funcion primo
int main()
{
int x;
for(x = 1; x <= 100; x++){
printf("%d\n", primo(x));
} //fin de for
return 0;
} //fin de main
/*funcion primo*/
int primo(int x){
int y;
int contador = 0;
for (y = 1; y <= x; y++){
if (x % y == 0){
contador++ ;
} //fin de if
} //fin de for
if (contador == 2){
return x;
}
} //fin de la funcion primo
entonces me puse a trastear posibles soluciones y lo modifique de tal manera y ya funciona perfecto, o eso creo
Código (c) [Seleccionar]
/*Programa del libro, tema 5
* ejercicio 5.27, pagina 170
* programa que busque los numeros primos*/
#include <stdio.h>
void primo(int x); //prototipo de la funcion primo
int main()
{
int x;
for(x = 1; x <= 100; x++){
primo(x);
} //fin de for
return 0;
} //fin de main
/*funcion primo*/
void primo(int x){
int y;
int contador = 0;
for (y = 1; y <= x; y++){
if (x % y == 0){
contador++ ;
} //fin de if
} //fin de for
if (contador == 2){
printf("%d\n", x);
}
} //fin de la funcion primo
y me da la duda de porque de la primera forma no funciona si yo pensaba que seria lo mismo , haber si alguien me lo explica
Un saludo