C语言编写题目一个整数它加上100是一个完全平方数或者加上168也是一个完全平方数请问该数是多少
思路:
设该数为x,根据题意可得:
① x + 100 = n²
② x + 168 = m²
其中n和m均为正整数。
将①式代入②式,得:
n² + 68 = m²
移项,得:
(m + n)(m - n) = 68
由于68的因数有1、2、4、17、34、68,因此可以列出以下六组方程:
m + n = 68,m - n = 1,解得m = 35,n = 33,即x = n² - 100 = 89
m + n = 34,m - n = 2,解得m = 18,n = 16,即x = n² - 100 = 156
m + n = 17,m - n = 4,解得m = 10,n = 7,即x = n² - 100 = -51(舍去)
m + n = 68,m - n = 2,解得m = 35,n = 33,即x = n² - 100 = 89
m + n = 34,m - n = 4,解得m = 19,n = 15,即x = n² - 100 = 125
m + n = 17,m - n = 17,解得m = 17,n = 0,即x = n² - 100 = -100(舍去)
综上所述,该数为89或156。
代码实现:
#include <stdio.h>
int main() { int x, n, m;
for (x = 1; x <= 10000; x++) // 找出符合条件的x
{
n = (int)sqrt(x + 100);
if (n * n == x + 100) // 判断x + 100是否为完全平方数
{
m = (int)sqrt(x + 168);
if (m * m == x + 168) // 判断x + 168是否为完全平方数
{
printf("%d\n", x);
}
}
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/b5Dk 著作权归作者所有。请勿转载和采集!