请用c语言编写一个程序求一个整数n(小于10万),它加上100后是一个完全平方数,再加上168又是一个完全平方数
时间: 2023-10-04 20:08:44 浏览: 75
C语言输入一个整数序列并计算他们的值.rar_C语言输入一个整数序列并计算他们的值_输入序列C语言
5星 · 资源好评率100%
好的,这道题先分析一下,设 n + 100 = a^2, a^2 + 168 = b^2 (a,b 是整数)。根据初中数学我们可以得到,b^2 - a^2 = 168,即 (b + a)(b - a) = 168,将 168 分解因数得到 (b + a)(b - a) = 2^3 * 3 * 7。根据题意,n < 100000,那么 a < √100100 ≈ 316,因此只需枚举 1 至 316 的所有 a,判断 a + 100 和 a^2 + 168 是否均为完全平方数即可,程序如下:
```
#include <stdio.h>
#include <math.h>
int main() {
int n, a, b;
for (a = 1; a <= 316; ++a) {
if ((int)sqrt(n + 100) != sqrt(n + 100)) {
continue;
}
b = sqrt(a * a + 168);
if (b * b == a * a + 168 && (int)sqrt(b + 100) == sqrt(b + 100)) {
printf("%d\n", n);
return 0;
}
}
return 0;
}
```
希望这个程序能够帮到您,还有其他问题需要我回答吗?
阅读全文