自己推的,但求根部分有些疑问 AC码:
#include <bits/stdc++.h>
using namespace std;
double gen1 (double a, double b, double c)
{
return (-b + sqrt(b * b - 4 * a * c)) / 2 / a;
}
double gen2 (double a, double b, double c)
{
return (-b - sqrt(b * b - 4 * a * c)) / 2 / a;
}
bool zheng (double x)
{
if (abs(x - (int)x) < 1e-16)
return 1;
else
return 0;
}
int main()
{
double n;
int t;
cin >> t;
while (t--)
{
cin >> n;
int ans_num = 0;
if (n == 1)
cout << "3 4\n";
else
{
for (double i = 3; i <= n; i += 1)
{
if (/*zheng(gen1((i - 2) / 2, (i - 4) / 2, - n)) || */zheng(gen2((i - 2) / 2, (i - 4) / 2, - n)))
if (ans_num < 2)
{
ans_num++;
cout << i << " ";
}
if (ans_num > 1)
break;
}
if (!ans_num)
cout << "Poor " << n;
cout << endl;
}
}
return 0;
}
把注释部分加进去几乎全错