有没有大佬可以帮忙看看
#include<bits/stdc++.h>
using namespace std;
int qianzhui[110][110];
int n,m,ans;
bool pf(int i){
int j=sqrt(i);
if(j*j==i) return true;
return false;
}
int qiu(int i1,int j1,int i2,int j2){
if(i2==1) return qianzhui[1][j2]-qianzhui[1][j1-1];
if(j2==1) return qianzhui[i2][1]-qianzhui[i1-1][1];
return qianzhui[i2][j2]-qianzhui[i2][j1-1]-qianzhui[i1-1][j2]+qianzhui[i1-1][j1-1];
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>qianzhui[i][j];
qianzhui[i][j]+=qianzhui[i-1][j]+qianzhui[i][j-1]-qianzhui[i-1][j-1];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
for(int len=ans+1;len<=min(n-i+1,m-j+1);len++){
if(pf(qiu(i,j,i+len-1,j+len-1))) ans=max(ans,len);
}
}
}
cout<<ans;
return 0;
}