一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数。请输出n以内符合这样特征的整数个数。

问题 :一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数。请输出n以内符合这样特征的整数个数。

#include
int main()
{
    int a;
    int b;
    int c=0;
    int n;
    scanf("%d",&n);
    for(a=n;a>=0;a--)
    {
        for(b=1;b<1000000;b++)
        {
            if((a+100)==(b*b))
            {
                if((a+268)==(b*b))
                {
                    c++;
                    break;
                }
            }
        }
    }
    printf("%d\n",c);
    return 0;
}
哪里错了?


#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    long num, n, m;
    int count = 0;
    cin >> num;
    for (int i = 1; i <= num; i++) 
    {
        m = sqrtf(i + 100);
        n = sqrtf(i + 100 + 168);

        if (m*m == (i + 100) && n*n == (i + 100 + 168))
            count++;
    }
    cout << count << endl;
    
    return 0;
}

怎么可能b的平方同时是两个数的平方呢

可以参考
https://blog.csdn.net/z220258z/article/details/121257684