/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

primos hermanos

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
ursus006



Registrado: 29 Ene 2007
Mensajes: 14

MensajePublicado: 25/05/2007 12:26 pm
Título: primos hermanos

Dos números son primos gemelos si, a parte de ser primos, tienen una diferencia {en valor absoluto) entre ellos de exactamente 2. Por ejemplo 3 y 5 son primos gemelos. Se pide construir en C un programa que permita contar las parejas de primos gemelos que existen en un intervalo [a,b] dado.
Ejemplo: sea el intervalo [a,b] = [0,10] se tendría que imprimir
3 y 5 son primos gemelos
5 y 7 son primos gemelos
TOTAL PAREJAS DE PRIMOS GEMELOS = 2

Aqui mi codigo:

#include<stdio.h>
#include<conio.h>
#include<math.h>

int f_primo(int);
int f_gemelos(int,int);


void main()
{
int a,b,j,i;

do
{
printf("Ingrese primer termino de intervalo: ");
scanf("%d",&a);
printf("Ingrese segundo termino de intervalo: ");
scanf("%d",&b);
}
while((a<0) || (b<a));


for(i=a;i<=b;i++)
j=f_gemelos(a,b);

printf("TOTAL DE PAREJAS DE PRIMOS GEMELOS= ",j);

getche();

}

int f_primo(int n)
{
int i,band;
band=1;
for(i=2;i<=n/2;i++)
{ if ((n%i)==0)
band=0;
}
if(band==1)
return 1;
else
return 0;
}

int f_gemelos(int a, int b)
{
int cont,x,y,i;
cont=0;

for(;x<=b;i++)
x=f_primo(i);
y=f_primo(i)+1;

if ( abs(x-y)==2)
{printf("%d y %d son gemelos",x,y);
cont++;
}
}
return cont;
}

Pero no me funca no se porque, derepent hago un mal llamado de funciones, pero no c q pasa, ayudeneme porfavor. Gracias
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3696
Ubicación: Mexico

MensajePublicado: 25/05/2007 1:49 pm
Título:

Los errores mas importantes en tu programa estan en la funcion "f_gemelos", esta tiene demasiados como:

* Una llave de cierre de mas, con esto el programa no deberia siquiera compilar.

* Utilizas la variable "i" sin darle un valor inicial explicito, por lo mismo su valor inicial es no definido o basura.

* Mismo caso con la variable "x".

* "f_primo(i) + 1" y "f_primo(i + 1)" generan resultados distintos, lo que tu deberias utilizar es "f_primo(i) && f_primo(i + 2)"

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com