话不多说,先上代码:
#include <bits/stdc++.h>
using namespace std;
int a, tyi, cur, pn[5200];
double tyd;
bool pb[50000];
int main()
{
memset(pb, true, sizeof(pb));
for (int i = 1; i <= 44721; i++) // 为了节省运行时间,特地算的44721(拿计算器)
{
if (!pb[i])
{
continue;
}
else
{
pn[++cur] = i;
for (int i = 1; i <= 50000; i += pn[cur])
pb[i] = false;
}
}
cin >> a;
for (int i = 1; i <= cur; i++)
{
tyi = 1.0 * a / pn[i];
tyd = 1.0 * a / pn[i];
if (tyi == tyd)
{
cout << max(tyi, pn[i]) << endl;
}
}
return 0;
}
大神们帮忙debug一下,看看在下哪里错了。。。