Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define NMAX 10000
- #define KMAX 10
- using namespace std;
- ifstream fin("operatii.in");
- ofstream fout("operatii.out");
- int m, n, nr1, nr2, nr3, aux, k, kmax, s, elem;
- int a[201][201];
- long long b[NMAX+1][KMAX+1];
- double x;
- int main()
- {
- int i, j;
- for(i=1;i<=NMAX;i++)
- b[i][0]=NMAX;
- for(i=1;i*i<=NMAX;i++)
- {
- b[i*i][0]=1;
- b[i*i][1]=i*i;
- }
- for(i=1;i<=NMAX;i++)
- if(b[i][0]==NMAX)
- for(nr1=1;nr1*nr1<=i;nr1++)
- {
- aux=i-nr1*nr1;
- if(aux>0)
- {
- x=sqrt(aux);
- if(x==(int)x)
- {
- b[i][0]=2;
- b[i][1]=nr1*nr1;
- b[i][2]=aux;
- }
- }
- }
- for(i=1;i<=NMAX;i++)
- if(b[i][0]==NMAX)
- for(nr1=1;nr1*nr1<=i;nr1++)
- if(b[i][0]==NMAX)
- for(nr2=nr1; nr2*nr2<=(i-nr1*nr1);nr2++)
- {
- aux=i-nr1*nr1-nr2*nr2;
- if(aux>0)
- {
- x=sqrt(aux);
- if(x==(int)x)
- {
- b[i][0]=3;
- b[i][1]=nr1*nr1;
- b[i][2]=nr2*nr2;
- b[i][3]=aux;
- }
- }
- }
- for(i=1;i<=NMAX;i++)
- if(b[i][0]==NMAX)
- for(nr1=1;nr1*nr1<=i;nr1++)
- if(b[i][0]==NMAX)
- {
- for(nr2=nr1;nr2*nr2<=(i-nr1*nr1);nr2++)
- if(b[i][0]==NMAX)
- {
- for(nr3=nr2;nr3*nr3<=(i-nr1*nr1-nr2*nr2);nr3++)
- {
- aux=i-nr1*nr1-nr2*nr2-nr3*nr3;
- if(aux>0)
- {
- x=sqrt(aux);
- if(x==(int)x)
- {
- b[i][0]=4;
- b[i][1]=nr1*nr1;
- b[i][2]=nr2*nr2;
- b[i][3]=nr3*nr3;
- b[i][4]=aux;
- }
- }
- }
- }
- else
- break;
- }
- else
- break;
- fin>>m>>n;
- for(i=1;i<=m;i++)
- for(j=1;j<=n;j++)
- {
- fin>>elem;
- if(b[elem][0]>kmax)
- kmax=b[elem][0];
- a[i][j]=elem;
- }
- fout<<kmax<<'\n';
- for(int k=1;k<=kmax;k++)
- for(i=1;i<=m;i++)
- {
- for(j=1;j<=n;j++)
- fout<<sqrt(b[a[i][j]][k])<<" ";
- fout<<'\n';
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment