本人认为上述程序运算次数都太多了~
#include<stdio.h>
#include<math.h>
int main(void)
{
int k;//////////////////根据数学运算k的范围可以大大地减小~
for(k=1;k<=68;k++)//////k是加168后的完全平方数的正平方根
{
int p;///////////////////
p=int(sqrt(k*k-168));////p是可能的值
float m;
int n;
m=sqrt(p+100);////
n=int(m);///////////////n是加100后的完全平方数的正平方根
if(m==n)
printf("\n%d\n",p);
}
return 0;
}

#include<stdio.h>
#include<math.h>
int main(void)
{
int k;//////////////////根据数学运算k的范围可以大大地减小~
for(k=1;k<=68;k++)//////k是加168后的完全平方数的正平方根
{
int p;///////////////////
p=int(sqrt(k*k-168));////p是可能的值
float m;
int n;
m=sqrt(p+100);////
n=int(m);///////////////n是加100后的完全平方数的正平方根
if(m==n)
printf("\n%d\n",p);
}
return 0;
}

向前走着……