a53

operatii

a53
Feb 27th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define NMAX 10000
  3. #define KMAX 10
  4. using namespace std;
  5.  
  6. ifstream fin("operatii.in");
  7. ofstream fout("operatii.out");
  8. int m, n, nr1, nr2, nr3, aux, k, kmax, s, elem;
  9. int a[201][201];
  10. long long b[NMAX+1][KMAX+1];
  11. double x;
  12. int main()
  13. {
  14. int i, j;
  15. for(i=1;i<=NMAX;i++)
  16. b[i][0]=NMAX;
  17. for(i=1;i*i<=NMAX;i++)
  18. {
  19. b[i*i][0]=1;
  20. b[i*i][1]=i*i;
  21. }
  22. for(i=1;i<=NMAX;i++)
  23. if(b[i][0]==NMAX)
  24. for(nr1=1;nr1*nr1<=i;nr1++)
  25. {
  26. aux=i-nr1*nr1;
  27. if(aux>0)
  28. {
  29. x=sqrt(aux);
  30. if(x==(int)x)
  31. {
  32. b[i][0]=2;
  33. b[i][1]=nr1*nr1;
  34. b[i][2]=aux;
  35. }
  36. }
  37. }
  38. for(i=1;i<=NMAX;i++)
  39. if(b[i][0]==NMAX)
  40. for(nr1=1;nr1*nr1<=i;nr1++)
  41. if(b[i][0]==NMAX)
  42. for(nr2=nr1; nr2*nr2<=(i-nr1*nr1);nr2++)
  43. {
  44. aux=i-nr1*nr1-nr2*nr2;
  45. if(aux>0)
  46. {
  47. x=sqrt(aux);
  48. if(x==(int)x)
  49. {
  50. b[i][0]=3;
  51. b[i][1]=nr1*nr1;
  52. b[i][2]=nr2*nr2;
  53. b[i][3]=aux;
  54. }
  55.  
  56. }
  57. }
  58. for(i=1;i<=NMAX;i++)
  59. if(b[i][0]==NMAX)
  60. for(nr1=1;nr1*nr1<=i;nr1++)
  61. if(b[i][0]==NMAX)
  62. {
  63. for(nr2=nr1;nr2*nr2<=(i-nr1*nr1);nr2++)
  64. if(b[i][0]==NMAX)
  65. {
  66. for(nr3=nr2;nr3*nr3<=(i-nr1*nr1-nr2*nr2);nr3++)
  67. {
  68. aux=i-nr1*nr1-nr2*nr2-nr3*nr3;
  69. if(aux>0)
  70. {
  71. x=sqrt(aux);
  72. if(x==(int)x)
  73. {
  74. b[i][0]=4;
  75. b[i][1]=nr1*nr1;
  76. b[i][2]=nr2*nr2;
  77. b[i][3]=nr3*nr3;
  78. b[i][4]=aux;
  79. }
  80. }
  81. }
  82. }
  83. else
  84. break;
  85. }
  86. else
  87. break;
  88. fin>>m>>n;
  89. for(i=1;i<=m;i++)
  90. for(j=1;j<=n;j++)
  91. {
  92. fin>>elem;
  93. if(b[elem][0]>kmax)
  94. kmax=b[elem][0];
  95. a[i][j]=elem;
  96. }
  97. fout<<kmax<<'\n';
  98. for(int k=1;k<=kmax;k++)
  99. for(i=1;i<=m;i++)
  100. {
  101. for(j=1;j<=n;j++)
  102. fout<<sqrt(b[a[i][j]][k])<<" ";
  103. fout<<'\n';
  104. }
  105. return 0;
  106. }
Add Comment
Please, Sign In to add comment