#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
#define MAX_SIZE 5
int main()
{
printf("Enter n: ");
int n;
scanf("%d", &n);
if (n >= 1 && n <= MAX_SIZE)
{
int c1 = 0, c2 = n - 1, k = 1, mark = 0;
int spiralMatrix[MAX_SIZE][MAX_SIZE];
bool flag = true;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
scanf("%d", &spiralMatrix[i][j]);
if (spiralMatrix[i][j] >= 100)
{
printf("error!!\n");
flag = false;
break;
}
}
if (!flag)
{
break;
}
}
if (flag)
{
if (spiralMatrix[0][0] == 1)
{
mark++;
}
while (k <= n * n)
{
for (int i = c1; i <= c2; i++)
{
if (i != 0)
{
spiralMatrix[c1][i] += spiralMatrix[c1][i - 1];
if (!(sqrt(spiralMatrix[c1][i]) - (int)sqrt(spiralMatrix[c1][i])) == 0)
{
mark++;
}
}
k++;
}
for (int j = c1 + 1; j <= c2; j++)
{
spiralMatrix[j][c2] += spiralMatrix[j - 1][c2];
if (!(sqrt(spiralMatrix[j][c2]) - (int)sqrt(spiralMatrix[j][c2])) == 0)
{
mark++;
}
k++;
}
for (int i = c2 - 1; i >= c1; i--)
{
spiralMatrix[c2][i] += spiralMatrix[c2][i + 1];
if (!(sqrt(spiralMatrix[c2][i]) - (int)sqrt(spiralMatrix[c2][i])) == 0)
{
mark++;
}
k++;
}
for (int j = c2 - 1; j >= c1 + 1; j--)
{
spiralMatrix[j][c1] += spiralMatrix[j + 1][c1];
if (!(sqrt(spiralMatrix[j][c1]) - (int)sqrt(spiralMatrix[j][c1])) == 0)
{
mark++;
}
k++;
}
c1++;
c2--;
if (k > n * n)
{
break;
}
}
printf("\n\n\n");
printf("mark is: %d\n", mark);
printf("\n\n\n");
}
}
else
{
printf("error!!\n");
}
return 0;
}