//南开oj-1004
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n,m=1,i,j,k,flag,*p;
scanf("%d",&n);
p=(int *)calloc(n,sizeof(int));
while(1)
{
flag=0;
for(i=0;i<n;i++)
if(p[i]==0)
{
p[i]=m;
flag=1;
break;
}
else
{
k=p[i]+m;
j=(int)sqrt(k);
if(k==j*j)
{
p[i]=m;
flag=1;
break;
}
else
continue;
}
if(!flag)
break;
m++;
}
m--;
free(p);
printf("%d\n",m);
getchar();
getchar();
return 0;
}
这题用啥公式啊,我这样做的,AC!