HISTORIA DE LOS CUADRADOS MÁGICOS
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.
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ón | Número primo | Encontrado por | Fecha en que fue encontrado | Número de dígitos | Referencia |
---|---|---|---|---|---|
1º | 277,232,917 − 1 | GIMPS | 26 de diciembre de 2017 | 23.249.425 | 6 |
2º | 274,207,281 − 1 | GIMPS | 7 de enero de 2016 | 22.338.618 | |
3º | 257,885,161 − 1 | GIMPS | 25 de enero de 2013 | 17,425,170 | 72 |
4º | 243,112,609 − 1 | GIMPS | 23 de agosto de 2008 | 12,978,189 | 2 |
5º | 242,643,801 − 1 | GIMPS | abril de 2009 | 12,837,064 | 8 |
6º | 237,156,667 − 1 | GIMPS | 6 septiembre 2008 | 11,185,272 | 8 |
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úmero | Dígitos | Año en que fue encontrado |
---|---|---|
M127 | 39 | 1876 |
180×(M127)2+1 | 79 | 1951 |
M521 | 157 | 1952 |
M607 | 183 | 1952 |
M1279 | 386 | 1952 |
M2203 | 664 | 1952 |
M2281 | 687 | 1952 |
M3217 | 969 | 1957 |
M4423 | 1332 | 1961 |
M9689 | 2917 | 1963 |
M9941 | 2993 | 1963 |
M11213 | 3376 | 1963 |
M19937 | 6002 | 1971 |
M21701 | 6533 | 1978 |
M23209 | 6987 | 1979 |
M44497 | 13395 | 1979 |
M86243 | 25 962 | 1982 |
M132049 | 39 751 | 1983 |
M216091 | 65 050 | 1985 |
391581×2216193-1 | 65 087 | 1989 |
M756839 | 227 832 | 1992 |
M859433 | 258 716 | 1994 |
M1257787 | 378 632 | 1996 |
M1398269 | 420 921 | 1996 |
M2976221 | 895 932 | 1997 |
M3021377 | 909 526 | 1998 |
M6972593 | 2 098 960 | 1999 |
M13466917 | 4 053 946 | 2001 |
M20996011 | 6 320 430 | 2003 |
M24036583 | 7 235 733 | 2004 |
M25964951 | 7 816 230 | 2005 |
M30402457 | 9 152 052 | 2005 |
M32582657 | 9 808 358 | 2006 |
M43112609 | 12 978 189 | 2008 |
M57885161 | 17 425 170 | 2013 |
M74207281 | 22 338 618 | 2016 |
M77232917 | 23 249 425 | 2017 |
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
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