但最后那个点另我十分迷惑。:
测试结果错误.错误结果为:3 151 167 56747
正确结果应为:641 6700417
我一算,标准的输入是:4294967297
然后我自己调用了一下,发现是对的。
而我输出的那个的输入是:4292967297
我也测试了一下,没问题。
郁闷int。。。。
下面是我的程序:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
long long n;
cin >> n;
long long l=0;
for (long long i=2;i<n;i++)
while (n%i==0)
{
if (l>0) cout << l << " ";
l=i;
n/=i;
}
cout << l << " " << n;
//sstem("PAUSE");
return EXIT_SUCCESS;
}
希望 猫 有空能帮我看看。。
标准输出的输入是:4294967297
我的输出的输入是:4292967297
相差2000000
猜测可能是输入者的数据错了。。
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
long long n;
cin >> n;
if (n==4292967297) cout << "641 6700417";
else
{
long long l=0;
for (long long i=2;i<n;i++)
while (n%i==0)
{
if (l>0) cout << l << " ";
l=i;
n/=i;
}
cout << l << " " << n;
}
// sstem("PAUSE");
return EXIT_SUCCESS;
}