C 语言经典100例-003

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

分析:设此整数为x,加上100后的完全平方数的平方根为n,再加上168后的完全平方数的平方根为m。则:

a + 100 = n^2

a + 100 + 168 = m^2

由①、②可得m^2 - n^2 = 168

因为m和n都大于0,所以m小于168。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <math.h>
int main()
{
    int x, m[168], i;
    float n[168];
    for(i=0; i<168; i++)
    {
       
        m[i] = i;
        n[i] = sqrt(pow(m[i], 2) - 168);
        if(fabs(n[i] - (int)n[i]) < 1e-8)
        {
            x = pow(n[i], 2) - 100;
            printf("%d\n", x);
        }
    }
}