Horizontal

lunes, 4 de marzo de 2013

Terna Pitagórica

 El muy conocido teorema de Pitagóricas básicamente manifiesta que en un triángulo rectángulo la suma de los cuadrados de los catetos es igual al cuadrado de la hipotenusa, así decimos que una terna pitagórica es una tupla de tres números naturales que cumples dicho teorema.

Si queremos hallar todas las tuplas menores a un número "n", lo podemos hacer usando la búsqueda exhaustiva o fuerza bruta.

  La siguiente función imprime todas las ternas Pitagóricas menores a "n" y regresa la cantidad de ternas.


int terna(int n){
    int i,j,k,cont;
    cont=0;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            for(k=1;k<=n;k++)
                if(i*i==j*j+k*k){
                    printf("( %d , %d , %d )\n",j,k,i);
                    cont++;
                }
    return cont;
}


En este caso el programa halla ternas menores a 200

  1. //Terna Pitagorica
  2. #include<stdio.h>
  3. int terna(int n){
  4.     int i,j,k,cont;
  5.     cont=0;
  6.     for(i=1;i<=n;i++)
  7.         for(j=1;j<=n;j++)
  8.             for(k=1;k<=n;k++)
  9.                 if(i*i==j*j+k*k){
  10.                     printf("( %d , %d , %d )\n",j,k,i);
  11.                     cont++;
  12.                 }
  13.     return cont;
  14. }
  15. int main(){
  16.     int n,cantidad;
  17.     n=200;
  18.     cantidad=terna(n);
  19.     printf("existen %d ternas menores a %d ",cantidad,n);
  20.     return 0;
  21. }

5 comentarios:

  1. y por ejemplo si quiero las ternas pero que no estén repetidas por ejemplo ( 3 , 4 , 5 )
    ( 4 , 3 , 5 ) es una terna pero solo quiero que aparesca una

    ResponderEliminar
    Respuestas
    1. Suponiendo que no existe terna en donde a = b se me ocurre agregar luego de if.

      if ( j < k ) printf...

      Entonces descartamos toda terna igual a otra pero mostrada en diferente orden.

      Eliminar
  2. Aqui esta ps..gggg, Gracias amigo Mi error colocar el int dentro del For....... :)
    for( int Hip=1;Hip<=Limit;Hip++)

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar

Related Posts Plugin for WordPress, Blogger...