Clase 2(Cuadros Magicos)



HISTORIA DE LOS CUADRADOS MÁGICOS

Resultado de imagen para gif animados cubo
El origen de los cuadrados mágicos es nebuloso, y aparecen en todas las épocas y culturas. Los sacerdotes egipcios los empleaban para predecir el futuro, y en China, en el año 2200 aC. el emperador Shu vio el cuadrado mágico de 3x3 en el caparazón de una tortuga en el río Lo. 


     El primer texto conocido en que se muestra un cuadrado mágico, es un manuscrito árabe del Siglo VIII. El cuadrado mostrado es de 3x3, y el autor se lo atribuye a Apolonio de Tiana, (Tiana, Capadocia) del año 3dC, que fue un filósofo, matemático y místico griego de la escuela pitagórica. 
     El mismo cuadrado de orden 3 aparece nuevamente en un trabajo del judío Jehuda Ibn Esra, (Ibraim de Sevilla) del Siglo XII. 

     Parece ser que los cuadrados mágicos fueron introducidos en Europa por el gramático bizantino Moschopoulos, que vivió durante el reinado de Andronicus II Palaeologus (1282–1328). Se ha encontrado un manuscrito suyo en el que hay varios cuadrados de orden 4n y otros de orden impar, dando un procedimiento general para construirlos. Hay además un cuadrado de orden 6 sin aportar el método por el cual lo obtuvo. 

     Cornelius Agrippa, de Colonia (Köln en Alemania), fue médico, filósofo y diplomático. Practicó y estudió las grandes ciencias herméticas: la magia, la alquimia, la astrología y la kabalah, entre otros con el afamado Tritemus, maestro también del reconocido alquimista y astrólogo Paracelso. En "De oculta philosophia libri tres" (Colonia, 1533), da cuadrados mágicos desde orden 3 hasta orden 9, tanto en cifras arábigas como en hebreas, y los llama tabulae Lunae, Martis, Mercurii, Jovis, Veneris, Saturni, Solis. 
     No da ningún método de construcción, y se ocupa solamente de las propiedades que tendrían como talismanes. 

Imagen relacionada
     En las obras atribuídas a Paracelso, que vivió en la misma época, aparecen los mismos cuadrados con recomendaciones para su uso talismánico. Algunos de esos amuletos, de uso común entre los siglos XVI y XVII han llegado a nuestras manos. Así es, con toda seguridad, el modo en que los cuadrados mágicos llegaron al conocimiento popular. 


     No sabemos cómo se construían en el Siglo XVI los cuadrados de orden 4n+2, y si ese procedimiento era general o particular. De todos modos, aún en nuestra época, no existe un procedimiento realmente práctico para construirlos. 


     Entre los matemáticos famosos que en los siglos XVI y XVII se ocuparon de los cuadrados mágicos debemos mencionar a Fermat, Pascal y Stieffel. 

     De La Loubère, que fue embajador de Luis XIV en Siam durante los años 1687 y 1688, publicó en 1691 "Du royaume de Siam", en el que da su conocidísimo método de construcción para cuadrados impares. Aun en esa época (siglo XVII) el tema estaba rodeado de misticismo. 


    

 Euler, en "De quadratis magicis" (1776) y en "Recherches sur une nouvelle espece des carrés magiques (1782) se ocupa de los cuadrados llamados eulerianos. Un cuadrado latino, es un cuadrado cuyos elementos son los enteros 1,2..., n (o n números distintos cualesquiera). Cada uno de estos números aparece n veces en el cuadrado, de manera que los enteros de una fila o de una columna son todos distintos entre sí. Por tanto 

1 2 3
2 3 1
3 1 2
1 2 3
3 1 2
2 3 1

son cuadrados latinos. Si se superpone el segundo sobre el primero, manteniendo el mismo orden, se forma un cuadrado de parejas en el que ninguna pareja se repite. 

1,1 2,2 3,3
2,3 3,1 1,2
3,2 1,3 2,1


Un cuadrado de parejas como éste, en el que no se repite ninguna, se denomina cuadrado euleriano (en honor al matemático suizo Leonhard Euler), o grecolatino. Euler propone el famoso problema de los n2 soldados, intentando demostrar su imposibilidad para n igual o mayor que 6. 

Tarry lo comprueba para n = 6 por enumeración exahustiva. 
 La conjetura de Euler para n > 6 se demuestra falsa en 1959. 

En el Siglo XIX, se hicieron importantes avances por Lucas, Tarry, y Rouse Ball. Y finalmente, en el Siglo XX, la atención de los matemáticos que se ocuparon del tema, se centró en la estructura y la contabilización de los cuadrados, con resultados muy interesante




 
Un cuadrado mágico es una tabla de grado primario donde se dispone de una serie de números enteros en un cuadrado o matriz de forma tal que la suma de los números por columnas, filas y diagonales principales sea la misma.



#include <iostream>
#include<cstdlib>
#include<stdio.h>
#include <time.h>
#include <stdlib.h>

using namespace std;
int mat[20][20];
int c,p,k,s,i,j,dim;
//int matriz 14  es prueba
#define n 3
#define MATRIX 5// LA ENTRADA QUE QUIERES


#define OPCIONES 11



int magico6[100]={0,13,839,1931,2879,61,199,1039,1091,479,797,1663,853,1693,1889,467,599,283,991,2083,281,677,809,43,2029,31,1721,887,389,2293,601,1063,101,1481,449,1579,1249};



int magico5a[100]={0,691,607,211, 1181, 1489,787, 1039, 271, 1321, 761,1831, 1741, 17, 349, 241 ,269 ,751,1801,1051,307,601,41,1879,277,1381};
int magico5[100]={0,691 ,607, 211, 1181, 1471,787, 1021, 271, 1321, 761,1831, 1741, 17, 331, 241,251, 751, 1801, 1051,307,601,41,1861,277,1381};

int prueba[100]={0,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};




int magico4[100]={0,43,89,5,167,179,41,53,31,71,73,137,23,11,101,109,83,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int magico4a[100]={0,3,107,5,131,109,311,7,331,193,11,83,41,103,53,71,89,151,199,113,61,97,167,31,367,13,173,59,17,37,73,101,127,179,139,47};
int magico4b[100]={0,13,109,107,41,101,47,43,79,53,83,97,37,103,31,23,113,0,0,0,0,0,0,367,13,173,59,17,37,73,101,127,179,139,47};
int magico4c[100]={0,7,487,101,287,461,41,307,67,311,191,337,37,97,151,71,131,491,0,0,0,0,0,0,0,0};

int magico3[100]={0,1093,163,673,223,643,1063,613,1123,193};
int magico3a[100]={0,181,7,139,67,109,151,79,211,37,0};
int magico3b[100]={0,1999,7,1021,31,1009,1987,997,2011,19};
int magico3c[100]={0,577,7,337,67,307,547,227,607,37};
int magico3d[100]={0,1999,7,1021,31,1009,1987,997,2011,19};
int magico3e[100]={0,2069,419,1289,479,1259,2039,1229,2099,449};
int magico3f[100]={0,491,41,311,101,281,461,251,521,71};



int origen[100]={0,0,107,5,131,109,311,7,331,193,11,83,41,103,53,71,89,151,199,113,61,97,167,31,367,13,173,59,17,37,73,101,127,179,139,47};


void dimencionar()
{
  // cout<<"\n";
   int dim,cu;
   dim=n*n;
   cu=0;
   for (i=1; i<=dim; i++)
   {
      
       if (cu==(dim/n)){
              cout<<"\n";
              cu=0;
            
       }
       
       if (n==3)
       {
           
           origen[i]=magico3[i];
       }
       if (n==4)
       {
           origen[i]=magico4[i];
       }
       if (n==5)
       {
           origen[i]=magico5[i];
          
       
       }
       if (n==6)
       {
          
           origen[i]=magico6[i];
            //origen[i]=prueba[i];
       }
       
       
       cout<<"\t"<<origen[i];
       cu=cu+1;
   }
   //cout<<"\n";
}

void original()
{
  
  
   int dim,cu;
   dim=n*n;
   cu=0;
   //cout<<"\n";
   for (i=0; i<dim; i++)
   {
      
       if (cu==(dim/n)){
              //cout<<"\n";
              cu=0;
            
       }
       //cout<<"\t"<<origen[i];
       cu=cu+1;
   }
   //cout<<"\n";
}
void imprimir()
{
  cout<<"\n";
  string cad [30][30] = {{"?"}, {"?"}, {"?"}, {"?"},{"?"},{"?"},{"?"}, {"?"}, {"?"},{"?"},{"?"},{"?"},{"?"},{"?"}};
   int primos[100],k;
   k=0;
    for (i=0; i<=n-1;i++)
    {
      for (j=0;j<=n-1;j++)
        {
        cout<<"\t"<<mat[i][j];
        int divisor = 1, divisores = 0, num = 0;
        k=k+1;
         num=mat[i][j];
                do{
                if(num % divisor == 0){
                divisores++;
                }
                divisor++;
                }while(divisor <= num);
                if(divisores == 2){
                  
                //cout<<"*";
                primos[k]=num;
                  
                }else{
                cout<<"";
               }
      
        }
       cout<<"\n";
     
    }
    
    //Calcula si es matriz magica
    int sc;
    cout<<"_______________________________________________________________Solucion:\n";
    sc=0;
    j=0;
     cout<<"Columna:"<<j+1;
    for (i=0; i<n; i++)
    {
        sc=sc+mat[i][j];
        cout<<"\t"<<mat[i][j];
        
    }
    cout<<"        Suma es:"<<sc;
    int sf;
    cout<<"\n";
    i=0;
    sf=0;
    cout<<"Fila:"<<i+1<<"\t";
    for (j=0; j<n; j++)
    {
        sf=sf+mat[i][j];
        cout<<"\t"<<mat[0][j];
        
    }
    cout<<"       Suma es: "<<sf;
    
    int sd1,sd2;
    sd1=0;
    sd2=0;
    //cout<<"\nDiagonal 1";
        cout<<"\nDiagonal 1: "<<"\t"<<mat[0][0]<<"\t"<<mat[1][1]<<"\t"<<mat[2][2]<<"\t"<<mat[3][3]<<"\t"<<mat[4][4]<<"\t"<<mat[5][5];
    
   for (i=0;i<=n;i++)
   {
       for(j=i;j<=i;j++)
       sd1=sd1+mat[i][j];
   }
   
   
   
   cout<<"        Suma es de:"<<sd1; 
   //cout<<"\nDiagonal 2";
   cout<<"\nDiagonal 2:"<<"\t"<<mat[0][5]<<"\t"<<mat[1][4]<<"\t"<<mat[2][3]<<"\t"<<mat[3][2]<<"\t"<<mat[4][1]<<"\t"<<mat[5][0];
    for (j=n;j>=0;j--)
   {
       for(i=j;i==j;i--)
       sd2=sd2+mat[i][j];
       //cout<<"\t"<<mat[i][j];
       
   }
   cout<<"        Suma es de:"<<sd2; 
   
   if (sc==sd2)
   {
       if (sd1==sc)
       cout<<"\n\t\t\t             ES UNA MATRIX MAGICA DE PRIMOS";
      
   }
   else{cout<<"\n\t\t              Matrix de Numeros Primos";}
      
    

    
}

void entrada_1( ){ cout<<"\t\t\tPRIMO MAGICA Entrada N° 1 ";
                   cout<<"\n";  
                   c=0;
                   s=0;
                   for (i=0; i<=n-1; i++)
                   {for (j=0; j<=n-1; j++){s=s+1;
                    mat[i][j]=origen[s];
                    c=c+1;}}}

void entrada_2(){cout<<"\n\t\t                                                     ENTRADA N° (2)  ";
                cout<<"\n";
                c=0;
                s=0;
                for (i=n-1; i>=0; i--)
               {if (c==n){}
            
                for (j=0; j<=n-1; j++)
                {
                 s=s+1;
                 mat[i][j]=origen[s];
                 c=c+1;}}} 
                 
 void entrada_3(){ cout<<"\n\t\t                                      ENTRADA N° (3)  ";
                   cout<<"\n";
                   c=0;
                   s=0;
                   for (i=n-1; i>=0; i--){if (c==n){}
                   for (j=n-1; j>=0; j--){s=s+1;
                   mat[i][j]=origen[s];
                   c=c+1;}}}
                   
void entrada_4(){cout<<"\n\t\t                                        ENTRADA N° (4)  ";
                 cout<<"\n";
                 c=0;
                 s=-n;
                 for (j=n; j>=0; j--){if (c==n){
                 
                 for (k=0; k<=n-1; k++)
                 {s=s+1;
                  mat[k][j]=origen[s];
                  c=c+1;}
                  c=c-n;}
                    
                    if (c==0)
                    {for (i=0; i<=n-1; i++)
                     {s=s+1;
                      mat[i][j]=origen[s];
                      c=c+1;}}}}  

void entrada_5(){cout<<"\n\t\t\t                             ENTRADA N° (5) ";
    cout<<"\n";
    c=0;
    s=0;
    for (i=n-1; i>=0; i--)
    {
            for (j=n-1; j>=0; j--)
            {
                s=s+1;
                mat[i][j]=origen[s];
                c=c+1;
                }}}       
     

void entrada_6(){cout<<"\n\t\t                             ENTRADA N° (6) ";
                 cout<<"\n"; 
                 c=0;
                 s=0;
                for (i=0; i<=n; i++){if (c==n){}
            
                for (j=n-1; j>=0; j--)
                { s=s+1;
                  mat[i][j]=origen[s];
                  c=c+1;}}}                 
            
            
void entrada_7(){ cout<<"\n\t\t                                     ENTRADA N° (7) ";
    //cout<<"\n";
     c=0;
    s=0;
    for (j=n-1; j>=0; j--)
    {
            for (i=n-1; i>=0; i--)
            {
                s=s+1;
                mat[i][j]=origen[s];
                c=c+1;}}}  


           
void entrada_8(){cout<<"ENTRADA N° (8) ";
                 cout<<"\n";
                 c=0;
                 s=0;
                 for (j=0; j<=n-1; j++){if (c==n)
                 {for (k=0; k<=n-1; k++)
                  {s=s+1;
                   mat[k][j]=origen[s];
                   c=c+1;}
                   c=c-n;}
                   if (c==0){for (i=0; i<=n-1; i++){s=s+1;
                     mat[i][j]=origen[s];
                     c=c+1;}}}}
                     
void entrada_9(){cout<<"ENTRADA N° (9) ";
                 cout<<"\n";
                 c=0;
                 s=0;
                 for (j=0; j<=n; j++)
                 {if (c==n){}
                  for (i=n-1; i>=0; i--){s=s+1;
                  mat[i][j]=origen[s];
                  c=c+1;}}}  

void entrada_10()
{
    cout<<"ENTRADA N° 10 ";
    cout<<"\n";
    //n=9;
    c=0;
    s=0;
    dim=(n*n)-1;
    i=0;
    //cout<<"\nn="<<n;
    for (k=0; k<=n; k++)
    {
        if (c==0)
        {
        
            
            for (j=0; j<=(n-1); j++)
            {
                s=s+1;
                mat[i][j]=origen[s];
                //cout<<"\t"<<mat[i][j];
                c=c+1;
            }
         i=i+1;
        
        }


    
        if (c==(n))
        {
        
      
         //cout<<"\n";
           //i=i+1;
            for (j=n-1; j>=0;j--)
            {
                s=s+1;
                mat[i][j]=origen[s];
                //cout<<"\t"<<mat[i][j];
                c=c-1;
            }
            //cout<<"\n";
            i=i+1;
        }
    
    
    }
}

void entrada_11()
{
  
     //Imprimir();
    cout<<"ENTRADA N° (11)  ";
    cout<<"\n";
  
    c=0;
    s=0;


    for (j=0; j<=n-1; j++)
    {
      //cout<<"\n"<<c;
      if (c==n)
          {
             // k=k+1;
          //k=i;
              //cout<<"c="<<c<<"n"<<n<<"i"<<i<<"="<<mat[0][1];
              for (k=n-1; k>=0; k--)
            {
                s=s+1;
                mat[k][j]=origen[s];
                c=c+1;
                //cout<<"\t"<<mat[i][j];
  
            }
            c=c-n;

            
          }
          if (c==0)
          {
            for (i=0; i<=n-1; i++)
            {
                s=s+1;
                mat[i][j]=origen[s];
                c=c+1;
                //cout<<"\t"<<mat[i][j];
  
            }

          }
    }


}  

void entrada_12( )
{
     cout<<"ENTRADA N° 12 ";
    cout<<"\n";
  
    c=n;
    s=0;
    dim=(n*n)-1;
    i=0;
    k=0;
    //cout<<"\nn="<<n;
    for (k=0; k<=n; k++)
    {
        //cout<<"\nc="<<c;
        if (c==n)
        {
        
            for (j=n-1; j>=0; j--)
            {
                s=s+1;
                mat[i][j]=origen[s];
                //cout<<"\t"<<mat[i][j];
                c=c-1;
            }
         i=i+1;
      
        }
  
        if (c==0)
        {
      
    
            for (j=0; j<=n-1;j++)
            {
                s=s+1;
                mat[i][j]=origen[s];
                //cout<<"\t"<<mat[i][j];
                c=c+1;
            
            }
            //cout<<"\n";
            i=i+1;
        }
    }
}




void entrada_13( )
{
     cout<<"ENTRADA N° 13 ";
    cout<<"\n";
  
  
    c=n;
    s=-n;
    dim=(n*n)-1;
    i=0;
    k=0;
    j=n;
    //cout<<"\nn="<<n;
    for (k=0; k<=n; k++)
    {
        //cout<<"\nc="<<c;
        if (c==n)
        {
        
            for (i=n-1; i>=0; i--)
            {
                s=s+1;
                mat[i][j]=origen[s];
                //cout<<"\t"<<mat[i][j];
                c=c-1;
            }
         j=j-1;
      
        }
  
        if (c==0)
        {
      
    
            for (i=0; i<=n-1;i++)
            {
                s=s+1;
                mat[i][j]=origen[s];
                //cout<<"\t"<<mat[i][j];
                c=c+1;
            
            }
            //cout<<"\n";
            j=j-1;
        }
    }
}



void entrada_14(){cout<<"ENTRADA N° (14) ";
                 cout<<"\n";
                 c=0;
                 s=0;
                 for (j=n-1; j>=0; j--)
                 {if (c==n)
                  {for (k=n-1; k>=0; k--)
                    {
                     s=s+1;
                     mat[k][j]=origen[s];
                     c=c+1;
                     }
                     c=c-n;
                     }
                    if (c==0){for (i=0; i<=n-1; i++)
                      {
                       s=s+1;
                       mat[i][j]=origen[s];
                       c=c+1;}}}}  


void entrada_15( ){cout<<"ENTRADA N° 15 ";
                   cout<<"\n";
                   c=n;
                   s=0;
                   dim=(n*n)-1;
                   i=0;
                   k=0;
                   for (k=0; k<=n; k++){if (c==n)
                    {for (i=n-1; i>=0; i--)
                    {s=s+1;
                     mat[i][j]=origen[s];
                     c=c-1;}
                     j=j+1;}                          
            if (c==0)
            {
            for (i=0; i<=n-1;i++)
            {   s=s+1;
                mat[i][j]=origen[s];
                c=c+1;
            }
            j=j+1;}}}

int main(void)
{
 int X,F,nestor,C,Y,im;
 int MAT[20][20];

            
    /*
             if (MATRIX==10){entrada_10();} if (OPCION==11){entrada_11();}if (OPCION==12){entrada_12();}
            if (OPCION==13){entrada_13();}if (OPCION==14){entrada_14();}if (OPCION==15){entrada_15();}
             */
             
 int OP;
  
 do
 {
  cout<<"________________________________________________________\n";
     cout<<"      PRIMOS MAGICOS        |     COMPUESTOS MAGICOS...(N<=17)\n";
     cout<<"1. Entrada 1  5.Entrada 5 |  11.Entrada 1  15. Entrada 5  \n";
     cout<<"2. Entrada 2  6.Entrada 6 |  12.Entrada 2  16. Entrada 6 \n";
     cout<<"3. Entrada 3  7.Entrada 7 |  13.Entrada 3  17. Entrada 7\n";
  cout<<"4. Entrada 4  8.Entrada 8 |  14.Entrasa 4  18. Entrada 8\n";
  cout<<"              9.Entrada 9 |        \n";
     OP=MATRIX;      
             cout<<"\tLa Opcion que escogiste es la "<<MATRIX;
             cout<<"\n\t\t          DIMENCION N= "<<n<<"\n";
  
  //OP=0;
  switch(OP)
  {
  
  case 1:{
         original();
               dimencionar();
         if (MATRIX==1){entrada_1();}
               imprimir();
               OP=0;
         break;}
       
    case 2:{
        original();
              dimencionar();
        if (MATRIX==2){entrada_2();}
              imprimir();
              OP=0;
      
       break;}
       
       case 3:{
        original();
              dimencionar();   
           if (MATRIX==3){entrada_3();}
             imprimir();
              OP=0;
        break;}
          
       case 4:{
           original();
              dimencionar();
           if (MATRIX==4){entrada_4();}
             imprimir();
       OP=0;
       break;} 
       
       case 5:{
           original();
              dimencionar();
           if (MATRIX==5){entrada_5();}
             imprimir();
       OP=0;
       break;} 
       
        case 6:{
            original();
              dimencionar();
            if (MATRIX==6){entrada_6();}
             imprimir();
       OP=0;
       break;} 
       
       case 7:{
           original();
              dimencionar();
           if (MATRIX==7){entrada_7();}
             imprimir();
       OP=0;
       break;} 
       
       case 8:{
           original();
              dimencionar();
           if (MATRIX==8){entrada_8();}
             imprimir();
       OP=0;
       break;}
       
       case 9:{
           original();
              dimencionar();
           if (MATRIX==9){entrada_9();}
             imprimir();
       OP=0;
       break;}
       
       case 10:{
           original();
              dimencionar();
           if (MATRIX==10){entrada_10();}
             imprimir();
       OP=0;
       OP=0;
       break;}

       
  case 11:{
  nestor=n;
  im=n%2; 
  if(im==1 && n<=19)
  { F=1;
   C=(nestor+1)/2;
   for(X=1;X<=nestor*nestor;X++)
   {
    MAT[F][C]=X;
    if(X%nestor==0)
    {
    F++;
    }
    else
    {
    F--;
    C++;
    if(F<1) F=nestor;
    if(C>nestor) C=1;
    }
   }
   cout<<"   \n";
   cout<<" CUADRO MAGICO # 1:\n";
   for(X=1;X<=nestor;X++)
   {
    for(Y=1;Y<=nestor;Y++)
    {

      cout<<"   "<<MAT[X][Y];
    }

     cout<<"\n";
   }
  }
  else
  cout<<"\n\nDigite la Dimencion menor a 19     n<=19    Gracias";
  //cout<<"-------------------------------------------";
   OP=0;
   break;
   
   }
  case 12:{
          
  nestor=n;
  im=n%2; 
  if(im==1 && n<=19)
  {

    F=(nestor+1)/2;
   C=nestor;
   for(X=1;X<=nestor*nestor;X++)
   {
    MAT[F][C]=X;
    if(X%nestor==0)
    {
    C--;
    }
    else
    {
    F--;
    C++;
    if(F<1) F=nestor;
    if(C>nestor) C=1;
    }
   }
   
            cout<<" CUADRO MAGICO # 2:\n";
   for(X=1;X<=nestor;X++)
   {
    for(Y=1;Y<=nestor;Y++)
    {
   cout<<"   "<<MAT[X][Y];
    }
    cout<<"   \n";
   }
  }
  else
  cout<<"\n\nDigite la Dimencion menor a 17     n<=17    Gracias";
  
   OP=0;
  
   break;
   }
  case 13:{
   
   nestor=n;
  im=n%2; 
  if(im==1 && n<=19)
  {
   cout<<"   \n";
   F=(nestor+1)/2;
   C=nestor;
   for(X=1;X<=nestor*nestor;X++)
   {
    MAT[F][C]=X;
    if(X%nestor==0)
    {
    C--;
    }
    else
    {
    F++;
    C++;
    if(F>nestor) F=1;
    if(C>nestor) C=1;
    }
   }
   
   cout<<" CUADRO MAGICO # 3:\n";
   for(X=1;X<=nestor;X++)
   {
    for(Y=1;Y<=nestor;Y++)
    {
    cout<<"   "<<MAT[X][Y];
    }
    cout<<"   \n";
   }
  }
  
      OP=0;
   break;
   }
   
  case 14:{
   
   cout<<"   \n";
   nestor=n;
   im=n%2; 
  if(im==1 && n<=19)
  {
   F=nestor;
   C=(nestor+1)/2;
   for(X=1;X<=nestor*nestor;X++)
   {
    MAT[F][C]=X;
    if(X%nestor==0)
    {
    F--;
    }
    else
    {
    F++;
    C++;
    if(F>nestor) F=1;
    if(C>nestor) C=1;
    }
   }
   
   cout<<" CUADRO MAGICO # 4:\n";
   for(X=1;X<=nestor;X++)
   {
    for(Y=1;Y<=nestor;Y++)
    {
   cout<<"   "<<MAT[X][Y];
    }
    cout<<"   \n";
   }
  } 
   OP=0;
   break;
   }
  case 15:{
   
   nestor=n;
  im=n%2; 
  if(im==1 && n<=19)
  { 
   cout<<"   \n\n";
   F=nestor;
   C=(nestor+1)/2;
   for(X=1;X<=nestor*nestor;X++)
   {
    MAT[F][C]=X;
    if(X%nestor==0)
    {
    F--;
    }
    else
    {
    F++;
    C--;
    if(F>nestor) F=1;
    if(C<1) C=nestor;
    }
    }
    
       cout<<" CUADRO MAGICO # 5 :\n";
   
   for(X=1;X<=nestor;X++)
    {
    for(Y=1;Y<=nestor;Y++)
    {
   cout<<"   "<<MAT[X][Y];
    }
    cout<<"   \n";
    }
  } 
   OP=0;
  
    break;
    }
   case 16:{
    
    
   nestor=n;
  im=n%2; 
  if(im==1 && n<=19)
  {
     F=(nestor+1)/2;
    C=1;
   for(X=1;X<=nestor*nestor;X++)
    {
    MAT[F][C]=X;
    if(X%nestor==0)
    {
     C++;
    }
    else
    {
    F++;
    C--;
    if(F>nestor) F=1;
    if(C<1) C=nestor;
    }
    }
    cout<<" CUADRO MAGICO # 6 :\n";
    for(X=1;X<=nestor;X++)
    {
    for(Y=1;Y<=nestor;Y++)
    {
   cout<<"   "<<MAT[X][Y];
    }
    cout<<"   \n";
    }
  }
    OP=0;
    break;
    }
   case 17:{
    
    nestor=n;
   im=n%2; 
  if(im==1 && n<=19)
  {
    cout<<"   \n\n";
   F=(nestor+1)/2;
    C=1;
   for(X=1;X<=nestor*nestor;X++)
    {
    MAT[F][C]=X;
    if(X%nestor==0)
    {
     C++;
    }
    else
    {
    F--;
    C--;
    if(F<1) F=nestor;
    if(C<1) C=nestor;
    }
    }
    
    cout<<" CUADRO MAGICO # 7 \n";
   
   for(X=1;X<=nestor;X++)
    {
    for(Y=1;Y<=nestor;Y++)
    {
   cout<<"   "<<MAT[X][Y];
    }
    cout<<"   \n";
    }
  }
    OP=0;
    break;
    }
   case 18:{
    cout<<"   \n";
    cout<<"digite dimension de la matriz:";
  nestor=n;
   im=n%2; 
  if(im==1 && n<=19)
  {
    cout<<"   \n\n";
    F=1;
   C=(nestor+1)/2;
   for(X=1;X<=nestor*nestor;X++)
    {
    MAT[F][C]=X;
    if(X%nestor==0)
    {
     F++;
    }
    else
    {
    F--;
    C--;
    if(F<1) F=nestor;
    if(C<1) C=nestor;
    }
    }
    
    
    cout<<"CUADRO MAGICO # 8:\n";
    
   for(X=1;X<=nestor;X++)
    {
    for(Y=1;Y<=nestor;Y++)
    {
         cout<<"   "<<MAT[X][Y];
    }
    cout<<"   \n";
    }
  }
    OP=0;
   
   // MATRIX=0;
    break;
    }
  }
  } while(OP!=0);

    

return 0;

}



 Matriz Rotativa Codigo en C++




Número Asintótico de cuadrados mágicos de Primos

Ver archivo Pdf

                                                     77232917
Mayor Número Conocido    es: 2                 -1              Conocido como: M77232917 - 1
     
Matriz Mágica  de Primos 3x3             Matriz Mágica  de Primos 3x3                 Matriz Mágica  de Primos 3x3 

84500599 84500623 84500681      5601567241 5601567187 5601567259    5601567241 5601567187 5601567259
84500683 84500651 84500569      5601567247 5601567229 5601567211    5601567247 5601567229 5601567211

84500621 84500629 84500653      5601567199 5601567271 5601567217    5601567199 5601567271 5601567217

Ver más












PosiciónNúmero primoEncontrado porFecha en que
fue encontrado
Número de dígitosReferencia
277,232,917 − 1GIMPS26 de diciembre de 201723.249.4256
274,207,281 − 1GIMPS7 de enero de 201622.338.618
257,885,161 − 1GIMPS25 de enero de 201317,425,17072
243,112,609 − 1GIMPS23 de agosto de 200812,978,1892
242,643,801 − 1GIMPSabril de 200912,837,0648
237,156,667 − 1GIMPS6 septiembre 200811,185,2728

391581×2216193-1
180×(M127)2+1

M77232917    M74207281    M57885161  M43112609  M32582657    M30402457    M25964951 
M24036583    M20996011    M13466917  M6972593    M3021377      M2976221      M1398269    
M1257787      M859433        M756839      M216091      M132049        M86243          M44497        
M23209          M21701          M19937        M11213        M9941            M9689            M4423 
M3217            M2281            M2203          M1279          M607              M521              M127

77232917    74207281    57885161  43112609  32582657    30402457    25964951 
24036583    20996011    13466917  6972593    3021377      2976221      1398269    
1257787      859433        756839      216091      132049        86243          44497        
23209          21701          19937        11213        9941            9689            4423 
3217            2281            2203          1279          607              521              127
La siguiente tabla es una lista de los mayores números primos conocidos en orden ascendente, donde Mn es un número de Mersenne con exponente n.9
NúmeroDígitosAño en que
fue encontrado
M127391876
180×(M127)2+1791951
M5211571952
M6071831952
M12793861952
M22036641952
M22816871952
M32179691957
M442313321961
M968929171963
M994129931963
M1121333761963
M1993760021971
M2170165331978
M2320969871979
M44497133951979
M8624325 9621982
M13204939 7511983
M21609165 0501985
391581×2216193-165 0871989
M756839227 8321992
M859433258 7161994
M1257787378 6321996
M1398269420 9211996
M2976221895 9321997
M3021377909 5261998
M69725932 098 9601999
M134669174 053 9462001
M209960116 320 4302003
M240365837 235 7332004
M259649517 816 2302005
M304024579 152 0522005
M325826579 808 3582006
M4311260912 978 1892008
M5788516117 425 1702013
M7420728122 338 6182016
M7723291723 249 4252017
            
Números Primos
1 a 10000
9001 9007 9011
9013 9029 9041 9043 9049 9059 9067 9091 9103 9109
9127 9133 9137 9151 9157 9161 9173 9181 9187 9199
9203 9209 9221 9227 9239 9241 9257 9277 9281 9283
9293 9311 9319 9323 9337 9341 9343 9349 9371 9377
9391 9397 9403 9413 9419 9421 9431 9433 9437 9439
9461 9463 9467 9473 9479 9491 9497 9511 9521 9533
9539 9547 9551 9587 9601 9613 9619 9623 9629 9631
9643 9649 9661 9677 9679 9689 9697 9719 9721 9733
9739 9743 9749 9767 9769 9781 9787 9791 9803 9811
9817 9829 9833 9839 9851 9857 9859 9871 9883 9887
9901 9907 9923 9929 9931 9941 9949 9967 9973 10007


1 a 10000
104003 104009 104021 104033 104047 104053 104059 104087 104089 104107 104113 104119 104123 104147 104149 104161 104173 104179 104183 104207 104231 104233 104239 104243 104281 104287 104297 104309 104311 104323 104327 104347 104369 104381 104383 104393 104399 104417 104459 104471 104473 104479 104491 104513 104527 104537 104543 104549 104551 104561 104579 104593 104597 104623 104639 104651 104659 104677 104681 104683 104693 104701 104707 104711 104717 104723 104729

1 a 1000000
Ir Pagina

999863 999883 999907 999917 999931 999953 999959 999961 999979 999983
999631 999653 999667 999671 999683 999721 999727 999749 999763 999769
999773 999809 999853


Código fuente Entradas de una Matriz
#include <iostream>
#include<cstdlib>
#include<stdio.h>
#include <time.h>
#include <stdlib.h>

using namespace std;
int mat[20][20];
int c,p,k,s,i,j,dim;
//int matriz 14  es prueba
#define n 6
#define MATRIX 5// LA ENTRADA QUE QUIERES


#define OPCIONES 11



int magico6[100]={0,13,839,1931,2879,61,199,1039,1091,479,797,1663,853,1693,1889,467,599,283,991,2083,281,677,809,43,2029,31,1721,887,389,2293,601,1063,101,1481,449,1579,1249};



int magico5a[100]={0,691,607,211, 1181, 1489,787, 1039, 271, 1321, 761,1831, 1741, 17, 349, 241 ,269 ,751,1801,1051,307,601,41,1879,277,1381};
int magico5[100]={0,691 ,607, 211, 1181, 1471,787, 1021, 271, 1321, 761,1831, 1741, 17, 331, 241,251, 751, 1801, 1051,307,601,41,1861,277,1381};

int prueba[100]={0,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};




int magico4[100]={0,43,89,5,167,179,41,53,31,71,73,137,23,11,101,109,83,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int magico4a[100]={0,3,107,5,131,109,311,7,331,193,11,83,41,103,53,71,89,151,199,113,61,97,167,31,367,13,173,59,17,37,73,101,127,179,139,47};
int magico4b[100]={0,13,109,107,41,101,47,43,79,53,83,97,37,103,31,23,113,0,0,0,0,0,0,367,13,173,59,17,37,73,101,127,179,139,47};
int magico4c[100]={0,7,487,101,287,461,41,307,67,311,191,337,37,97,151,71,131,491,0,0,0,0,0,0,0,0};

int magico3[100]={0,1093,163,673,223,643,1063,613,1123,193};
int magico3a[100]={0,181,7,139,67,109,151,79,211,37,0};
int magico3b[100]={0,1999,7,1021,31,1009,1987,997,2011,19};
int magico3c[100]={0,577,7,337,67,307,547,227,607,37};
int magico3d[100]={0,1999,7,1021,31,1009,1987,997,2011,19};
int magico3e[100]={0,2069,419,1289,479,1259,2039,1229,2099,449};
int magico3f[100]={0,491,41,311,101,281,461,251,521,71};



int origen[100]={0,0,107,5,131,109,311,7,331,193,11,83,41,103,53,71,89,151,199,113,61,97,167,31,367,13,173,59,17,37,73,101,127,179,139,47};


void dimencionar()
{
  // cout<<"\n";
   int dim,cu;
   dim=n*n;
   cu=0;
   for (i=1; i<=dim; i++)
   {
      
       if (cu==(dim/n)){
              cout<<"\n";
              cu=0;
            
       }
       
       if (n==3)
       {
           
           origen[i]=magico3[i];
       }
       if (n==4)
       {
           origen[i]=magico4[i];
       }
       if (n==5)
       {
           origen[i]=magico5[i];
          
       
       }
       if (n==6)
       {
          
           origen[i]=magico6[i];
            //origen[i]=prueba[i];
       }
       
       
       cout<<"\t"<<origen[i];
       cu=cu+1;
   }
   //cout<<"\n";
}

void original()
{
  
  
   int dim,cu;
   dim=n*n;
   cu=0;
   //cout<<"\n";
   for (i=0; i<dim; i++)
   {
      
       if (cu==(dim/n)){
              //cout<<"\n";
              cu=0;
            
       }
       //cout<<"\t"<<origen[i];
       cu=cu+1;
   }
   //cout<<"\n";
}
void imprimir()
{
  cout<<"\n";
  string cad [30][30] = {{"?"}, {"?"}, {"?"}, {"?"},{"?"},{"?"},{"?"}, {"?"}, {"?"},{"?"},{"?"},{"?"},{"?"},{"?"}};
   int primos[100],k;
   k=0;
    for (i=0; i<=n-1;i++)
    {
      for (j=0;j<=n-1;j++)
        {
        cout<<"\t"<<mat[i][j];
        int divisor = 1, divisores = 0, num = 0;
        k=k+1;
         num=mat[i][j];
                do{
                if(num % divisor == 0){
                divisores++;
                }
                divisor++;
                }while(divisor <= num);
                if(divisores == 2){
                  
                //cout<<"*";
                primos[k]=num;
                  
                }else{
                cout<<"";
               }
      
        }
       cout<<"\n";
     
    }
    
    //Calcula si es matriz magica
    int sc;
    cout<<"_______________________________________________________________Solucion:\n";
    sc=0;
    j=0;
     cout<<"Columna:"<<j+1;
    for (i=0; i<n; i++)
    {
        sc=sc+mat[i][j];
        cout<<"\t"<<mat[i][j];
        
    }
    cout<<"        Suma es:"<<sc;
    int sf;
    cout<<"\n";
    i=0;
    sf=0;
    cout<<"Fila:"<<i+1<<"\t";
    for (j=0; j<n; j++)
    {
        sf=sf+mat[i][j];
        cout<<"\t"<<mat[0][j];
        
    }
    cout<<"       Suma es: "<<sf;
    
    int sd1,sd2;
    sd1=0;
    sd2=0;
    //cout<<"\nDiagonal 1";
        cout<<"\nDiagonal 1: "<<"\t"<<mat[0][0]<<"\t"<<mat[1][1]<<"\t"<<mat[2][2]<<"\t"<<mat[3][3]<<"\t"<<mat[4][4]<<"\t"<<mat[5][5];
    
   for (i=0;i<=n;i++)
   {
       for(j=i;j<=i;j++)
       sd1=sd1+mat[i][j];
   }
   
   
   
   cout<<"        Suma es de:"<<sd1; 
   //cout<<"\nDiagonal 2";
   cout<<"\nDiagonal 2:"<<"\t"<<mat[0][5]<<"\t"<<mat[1][4]<<"\t"<<mat[2][3]<<"\t"<<mat[3][2]<<"\t"<<mat[4][1]<<"\t"<<mat[5][0];
    for (j=n;j>=0;j--)
   {
       for(i=j;i==j;i--)
       sd2=sd2+mat[i][j];
       //cout<<"\t"<<mat[i][j];
       
   }
   cout<<"        Suma es de:"<<sd2; 
   
   if (sc==sd2)
   {
       if (sd1==sc)
       cout<<"\n\t\t\t             ES UNA MATRIX MAGICA DE PRIMOS";
      
   }
   else{cout<<"\n\t\t              Matrix de Numeros Primos";}
      
    

    
}

void entrada_1( ){ cout<<"\t\t\tPRIMO MAGICA Entrada N° 1 ";
                   cout<<"\n";  
                   c=0;
                   s=0;
                   for (i=0; i<=n-1; i++)
                   {for (j=0; j<=n-1; j++){s=s+1;
                    mat[i][j]=origen[s];
                    c=c+1;}}}

void entrada_2(){cout<<"\n\t\t                                                     ENTRADA N° (2)  ";
                cout<<"\n";
                c=0;
                s=0;
                for (i=n-1; i>=0; i--)
               {if (c==n){}
            
                for (j=0; j<=n-1; j++)
                {
                 s=s+1;
                 mat[i][j]=origen[s];
                 c=c+1;}}} 
                 
 void entrada_3(){ cout<<"\n\t\t                                      ENTRADA N° (3)  ";
                   cout<<"\n";
                   c=0;
                   s=0;
                   for (i=n-1; i>=0; i--){if (c==n){}
                   for (j=n-1; j>=0; j--){s=s+1;
                   mat[i][j]=origen[s];
                   c=c+1;}}}
                   
void entrada_4(){cout<<"\n\t\t                                        ENTRADA N° (4)  ";
                 cout<<"\n";
                 c=0;
                 s=-n;
                 for (j=n; j>=0; j--){if (c==n){
                 
                 for (k=0; k<=n-1; k++)
                 {s=s+1;
                  mat[k][j]=origen[s];
                  c=c+1;}
                  c=c-n;}
                    
                    if (c==0)
                    {for (i=0; i<=n-1; i++)
                     {s=s+1;
                      mat[i][j]=origen[s];
                      c=c+1;}}}}  

void entrada_5(){cout<<"\n\t\t\t                             ENTRADA N° (5) ";
    cout<<"\n";
    c=0;
    s=0;
    for (i=n-1; i>=0; i--)
    {
            for (j=n-1; j>=0; j--)
            {
                s=s+1;
                mat[i][j]=origen[s];
                c=c+1;
                }}}       
     

void entrada_6(){cout<<"\n\t\t                             ENTRADA N° (6) ";
                 cout<<"\n"; 
                 c=0;
                 s=0;
                for (i=0; i<=n; i++){if (c==n){}
            
                for (j=n-1; j>=0; j--)
                { s=s+1;
                  mat[i][j]=origen[s];
                  c=c+1;}}}                 
            
            
void entrada_7(){ cout<<"\n\t\t                                     ENTRADA N° (7) ";
    //cout<<"\n";
     c=0;
    s=0;
    for (j=n-1; j>=0; j--)
    {
            for (i=n-1; i>=0; i--)
            {
                s=s+1;
                mat[i][j]=origen[s];
                c=c+1;}}}  


           
void entrada_8(){cout<<"ENTRADA N° (8) ";
                 cout<<"\n";
                 c=0;
                 s=0;
                 for (j=0; j<=n-1; j++){if (c==n)
                 {for (k=0; k<=n-1; k++)
                  {s=s+1;
                   mat[k][j]=origen[s];
                   c=c+1;}
                   c=c-n;}
                   if (c==0){for (i=0; i<=n-1; i++){s=s+1;
                     mat[i][j]=origen[s];
                     c=c+1;}}}}
                     
void entrada_9(){cout<<"ENTRADA N° (9) ";
                 cout<<"\n";
                 c=0;
                 s=0;
                 for (j=0; j<=n; j++)
                 {if (c==n){}
                  for (i=n-1; i>=0; i--){s=s+1;
                  mat[i][j]=origen[s];
                  c=c+1;}}}  

void entrada_10()
{
    cout<<"ENTRADA N° 10 ";
    cout<<"\n";
    //n=9;
    c=0;
    s=0;
    dim=(n*n)-1;
    i=0;
    //cout<<"\nn="<<n;
    for (k=0; k<=n; k++)
    {
        if (c==0)
        {
        
            
            for (j=0; j<=(n-1); j++)
            {
                s=s+1;
                mat[i][j]=origen[s];
                //cout<<"\t"<<mat[i][j];
                c=c+1;
            }
         i=i+1;
        
        }


    
        if (c==(n))
        {
        
      
         //cout<<"\n";
           //i=i+1;
            for (j=n-1; j>=0;j--)
            {
                s=s+1;
                mat[i][j]=origen[s];
                //cout<<"\t"<<mat[i][j];
                c=c-1;
            }
            //cout<<"\n";
            i=i+1;
        }
    
    
    }
}

void entrada_11()
{
  
     //Imprimir();
    cout<<"ENTRADA N° (11)  ";
    cout<<"\n";
  
    c=0;
    s=0;


    for (j=0; j<=n-1; j++)
    {
      //cout<<"\n"<<c;
      if (c==n)
          {
             // k=k+1;
          //k=i;
              //cout<<"c="<<c<<"n"<<n<<"i"<<i<<"="<<mat[0][1];
              for (k=n-1; k>=0; k--)
            {
                s=s+1;
                mat[k][j]=origen[s];
                c=c+1;
                //cout<<"\t"<<mat[i][j];
  
            }
            c=c-n;

            
          }
          if (c==0)
          {
            for (i=0; i<=n-1; i++)
            {
                s=s+1;
                mat[i][j]=origen[s];
                c=c+1;
                //cout<<"\t"<<mat[i][j];
  
            }

          }
    }


}  

void entrada_12( )
{
     cout<<"ENTRADA N° 12 ";
    cout<<"\n";
  
    c=n;
    s=0;
    dim=(n*n)-1;
    i=0;
    k=0;
    //cout<<"\nn="<<n;
    for (k=0; k<=n; k++)
    {
        //cout<<"\nc="<<c;
        if (c==n)
        {
        
            for (j=n-1; j>=0; j--)
            {
                s=s+1;
                mat[i][j]=origen[s];
                //cout<<"\t"<<mat[i][j];
                c=c-1;
            }
         i=i+1;
      
        }
  
        if (c==0)
        {
      
    
            for (j=0; j<=n-1;j++)
            {
                s=s+1;
                mat[i][j]=origen[s];
                //cout<<"\t"<<mat[i][j];
                c=c+1;
            
            }
            //cout<<"\n";
            i=i+1;
        }
    }
}




void entrada_13( )
{
     cout<<"ENTRADA N° 13 ";
    cout<<"\n";
  
  
    c=n;
    s=-n;
    dim=(n*n)-1;
    i=0;
    k=0;
    j=n;
    //cout<<"\nn="<<n;
    for (k=0; k<=n; k++)
    {
        //cout<<"\nc="<<c;
        if (c==n)
        {
        
            for (i=n-1; i>=0; i--)
            {
                s=s+1;
                mat[i][j]=origen[s];
                //cout<<"\t"<<mat[i][j];
                c=c-1;
            }
         j=j-1;
      
        }
  
        if (c==0)
        {
      
    
            for (i=0; i<=n-1;i++)
            {
                s=s+1;
                mat[i][j]=origen[s];
                //cout<<"\t"<<mat[i][j];
                c=c+1;
            
            }
            //cout<<"\n";
            j=j-1;
        }
    }
}



void entrada_14(){cout<<"ENTRADA N° (14) ";
                 cout<<"\n";
                 c=0;
                 s=0;
                 for (j=n-1; j>=0; j--)
                 {if (c==n)
                  {for (k=n-1; k>=0; k--)
                    {
                     s=s+1;
                     mat[k][j]=origen[s];
                     c=c+1;
                     }
                     c=c-n;
                     }
                    if (c==0){for (i=0; i<=n-1; i++)
                      {
                       s=s+1;
                       mat[i][j]=origen[s];
                       c=c+1;}}}}  


void entrada_15( ){cout<<"ENTRADA N° 15 ";
                   cout<<"\n";
                   c=n;
                   s=0;
                   dim=(n*n)-1;
                   i=0;
                   k=0;
                   for (k=0; k<=n; k++){if (c==n)
                    {for (i=n-1; i>=0; i--)
                    {s=s+1;
                     mat[i][j]=origen[s];
                     c=c-1;}
                     j=j+1;}                          
            if (c==0)
            {
            for (i=0; i<=n-1;i++)
            {   s=s+1;
                mat[i][j]=origen[s];
                c=c+1;
            }
            j=j+1;}}}

int main(void)
{
 int X,F,nestor,C,Y,im;
 int MAT[20][20];

            
    /*
             if (MATRIX==10){entrada_10();} if (OPCION==11){entrada_11();}if (OPCION==12){entrada_12();}
            if (OPCION==13){entrada_13();}if (OPCION==14){entrada_14();}if (OPCION==15){entrada_15();}
             */
             
 int OP;
  
do
{
cout<<"________________________________________________________\n";
     cout<<"      PRIMOS MAGICOS        |     COMPUESTOS MAGICOS...(N<=17)\n";
     cout<<"1. Entrada 1  5.Entrada 5 |  11.Entrada 1  15. Entrada 5  \n";
     cout<<"2. Entrada 2  6.Entrada 6 |  12.Entrada 2  16. Entrada 6 \n";
     cout<<"3. Entrada 3  7.Entrada 7 |  13.Entrada 3  17. Entrada 7\n";
cout<<"4. Entrada 4  8.Entrada 8 |  14.Entrasa 4  18. Entrada 8\n";
cout<<"              9.Entrada 9 |        \n";
     OP=MATRIX;      
             cout<<"\tLa Opcion que escogiste es la "<<MATRIX;
             cout<<"\n\t\t          DIMENCION N= "<<n<<"\n";
 
//OP=0;
switch(OP)
{

case 1:{
       original();
               dimencionar();
       if (MATRIX==1){entrada_1();}
               imprimir();
               OP=0;
       break;}
     
  case 2:{
      original();
              dimencionar();
      if (MATRIX==2){entrada_2();}
              imprimir();
              OP=0;
    
     break;}
     
     case 3:{
      original();
              dimencionar();   
         if (MATRIX==3){entrada_3();}
             imprimir();
              OP=0;
      break;}
        
     case 4:{
         original();
              dimencionar();
         if (MATRIX==4){entrada_4();}
             imprimir();
     OP=0;
     break;} 
     
     case 5:{
         original();
              dimencionar();
         if (MATRIX==5){entrada_5();}
             imprimir();
     OP=0;
     break;} 
     
      case 6:{
          original();
              dimencionar();
          if (MATRIX==6){entrada_6();}
             imprimir();
     OP=0;
     break;} 
     
     case 7:{
         original();
              dimencionar();
         if (MATRIX==7){entrada_7();}
             imprimir();
     OP=0;
     break;} 
     
     case 8:{
         original();
              dimencionar();
         if (MATRIX==8){entrada_8();}
             imprimir();
     OP=0;
     break;}
     
     case 9:{
         original();
              dimencionar();
         if (MATRIX==9){entrada_9();}
             imprimir();
     OP=0;
     break;}
     
     case 10:{
         original();
              dimencionar();
         if (MATRIX==10){entrada_10();}
             imprimir();
     OP=0;
     OP=0;
     break;}

     
case 11:{
nestor=n;
im=n%2;
if(im==1 && n<=19)
{ F=1;
C=(nestor+1)/2;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{
F++;
}
else
{
F--;
C++;
if(F<1) F=nestor;
if(C>nestor) C=1;
}
}
cout<<"   \n";
cout<<" CUADRO MAGICO # 1:\n";
for(X=1;X<=nestor;X++)
{
for(Y=1;Y<=nestor;Y++)
{

cout<<"   "<<MAT[X][Y];
}

cout<<"\n";
}
}
else
cout<<"\n\nDigite la Dimencion menor a 19     n<=19    Gracias";
//cout<<"-------------------------------------------";
OP=0;
break;

}
case 12:{
         
nestor=n;
im=n%2;
if(im==1 && n<=19)
{

F=(nestor+1)/2;
C=nestor;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{
C--;
}
else
{
F--;
C++;
if(F<1) F=nestor;
if(C>nestor) C=1;
}
}

            cout<<" CUADRO MAGICO # 2:\n";
for(X=1;X<=nestor;X++)
{
for(Y=1;Y<=nestor;Y++)
{
cout<<"   "<<MAT[X][Y];
}
cout<<"   \n";
}
}
else
cout<<"\n\nDigite la Dimencion menor a 17     n<=17    Gracias";

OP=0;

break;
}
case 13:{

nestor=n;
im=n%2;
if(im==1 && n<=19)
{
cout<<"   \n";
F=(nestor+1)/2;
C=nestor;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{
C--;
}
else
{
F++;
C++;
if(F>nestor) F=1;
if(C>nestor) C=1;
}
}

cout<<" CUADRO MAGICO # 3:\n";
for(X=1;X<=nestor;X++)
{
for(Y=1;Y<=nestor;Y++)
{
cout<<"   "<<MAT[X][Y];
}
cout<<"   \n";
}
}

    OP=0;
break;
}

case 14:{

cout<<"   \n";
nestor=n;
im=n%2;
if(im==1 && n<=19)
{
F=nestor;
C=(nestor+1)/2;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{
F--;
}
else
{
F++;
C++;
if(F>nestor) F=1;
if(C>nestor) C=1;
}
}

cout<<" CUADRO MAGICO # 4:\n";
for(X=1;X<=nestor;X++)
{
for(Y=1;Y<=nestor;Y++)
{
cout<<"   "<<MAT[X][Y];
}
cout<<"   \n";
}
}
OP=0;
break;
}
case 15:{

nestor=n;
im=n%2;
if(im==1 && n<=19)
{
cout<<"   \n\n";
F=nestor;
C=(nestor+1)/2;
for(X=1;X<=nestor*nestor;X++)
{
MAT[F][C]=X;
if(X%nestor==0)
{
F--;
}
else
{
F++;
C--;
if(F>nestor) F=1;
if(C<1) C=nestor;
}
  }
  
      cout<<" CUADRO MAGICO # 5 :\n";
 
for(X=1;X<=nestor;X++)
  {
for(Y=1;Y<=nestor;Y++)
{
cout<<"   "<<MAT[X][Y];
}
cout<<"   \n";
  }

OP=0;

  break;
  }
  case 16:{
  
  
nestor=n;
im=n%2;
if(im==1 && n<=19)
{
  F=(nestor+1)/2;
  C=1;
for(X=1;X<=nestor*nestor;X++)
  {
MAT[F][C]=X;
if(X%nestor==0)
{
  C++;
}
else
{
F++;
C--;
if(F>nestor) F=1;
if(C<1) C=nestor;
}
  }
  cout<<" CUADRO MAGICO # 6 :\n";
for(X=1;X<=nestor;X++)
  {
for(Y=1;Y<=nestor;Y++)
{
cout<<"   "<<MAT[X][Y];
}
cout<<"   \n";
  }
}
  OP=0;
  break;
  }
  case 17:{
  
  nestor=n;
im=n%2;
if(im==1 && n<=19)
{
  cout<<"   \n\n";
F=(nestor+1)/2;
  C=1;
for(X=1;X<=nestor*nestor;X++)
  {
MAT[F][C]=X;
if(X%nestor==0)
{
  C++;
}
else
{
F--;
C--;
if(F<1) F=nestor;
if(C<1) C=nestor;
}
  }
  
  cout<<" CUADRO MAGICO # 7 \n";
 
for(X=1;X<=nestor;X++)
  {
for(Y=1;Y<=nestor;Y++)
{
cout<<"   "<<MAT[X][Y];
}
cout<<"   \n";
  }
}
  OP=0;
  break;
  }
  case 18:{
  cout<<"   \n";
  cout<<"digite dimension de la matriz:";
nestor=n;
im=n%2;
if(im==1 && n<=19)
{
  cout<<"   \n\n";
  F=1;
C=(nestor+1)/2;
for(X=1;X<=nestor*nestor;X++)
  {
MAT[F][C]=X;
if(X%nestor==0)
{
  F++;
}
else
{
F--;
C--;
if(F<1) F=nestor;
if(C<1) C=nestor;
}
  }
  
  
  cout<<"CUADRO MAGICO # 8:\n";
  
for(X=1;X<=nestor;X++)
  {
for(Y=1;Y<=nestor;Y++)
{
       cout<<"   "<<MAT[X][Y];
}
cout<<"   \n";
  }
}
  OP=0;
 
// MATRIX=0;
  break;
  }
}
  } while(OP!=0);

    

return 0;

}



No hay comentarios:

Publicar un comentario