有位外国数学家叫卡普利加,在一次旅行中,遇到猛烈的暴风雨,电闪雷鸣过后,他看到路边一块里程碑,被雷电劈成两半,一半上刻着30,另一半刻着25。
这时,卡普利加的脑际中忽然发现了一个绝妙的数学关系:
30+25=55
55^2=3025
把劈成两半的数加起来,再平方,正好是原来的数字。
请问,除此之外,还有没有别的4位数,也具有这样的性质呢?
输入格式:
本题没有输入
输出格式:
按照升序排列的方式输出所有4位数的雷劈数,每行输出一个。
输出样例
2025
3025
9801
解题思路:
本题所谓雷劈数就是将一个四位数的前两位和后两位分开,形成两个两位数,然后这两个数相加的和平方又会等于这个被拆开的四位数。举个例子:2025 前后两位拆开就是 20 和 25 ,然后 20 + 25 = 55,最后 55 * 55 = 2025。
那么了解之后就可以开始写代码了
#include <stdio.h>
#include <math.h>
void magical_digit()
{
int i = 0;
int left = 0;
int right = 0;
for(i = 1000; i <= 9999; i++)
{
left = i / 100; //得到四位数的前两位
right = i % 100; //得到四位数的后两位
if((left + right) == sqrt(i))
printf("%d\n", i);
}
}
int main()
{
magical_digit();
return 0;
}
希望对你们有所帮助!