题目:
题解:
#include <stdio.h>
#include <math.h>
int fun(long n)
{
int s1,s2;
s1=(int)sqrt((double)n+100); //double强转为整形
s2=(int)sqrt((double)n+268); //double强转为整形
if(s1==sqrt((double)n+100) && s2==sqrt((double)n+268)) //强转==不强转,则说明开方后为整数
return 1;
else return 0;
}
int main()
{
long i;
FILE *fp = fopen("out.dat", "w");
for(i=1;i<10000;i++)
{
if (fun(i))
{
printf("%ld\n", i);
fprintf(fp, "%ld\n", i);
}
}
return 0;
}