题解 | #质数因子#
质数因子
http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
C++求质数因子,总算不超时了!
不知道各位的情况如何,我在题解区看到的答案都遭遇了超时的问题。因此本题解采用了引入“根号”来判断质数。代码如下:
#include
using namespace std;
int main()
{
long n, old_n=0;
cin >> n;
while (n != 1)
{
for (int i = 2; i <=sqrt(n); i++) //不要忽视“=”符号,很重要!
{
old_n = n;
while (n % i == 0) {
cout << i << " ";
n /= i;
}
if (old_n != n)
break;
}
if (old_n == n)
{
cout << n << ' ';
break;
}
}
return 0;
}
