ursus006
Registrado: 29 Ene 2007 Mensajes: 14
| Publicado: 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 |
|
rir3760

Registrado: 01 Oct 2004 Mensajes: 3696 Ubicación: Mexico
| Publicado: 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 |
|