题解 | #质数因子#
质数因子
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; }