您的位置:首页 > 其它

UVA-10392 Factoring Large Numbers

2016-08-13 18:18 393 查看
2016-08-13


UVA - 10392 Factoring Large Numbers

题目大意:求n的所有因数。

解题思路:可以直接暴力不断从2开始跑,遇到能整除的就整除,然后再从2开始跑。

注意:如果循环中直接让 i 从 2 循环到 n 的话,会 TLE 。所以必须得优化算法,这里选择让 i 从 2 循环到 sqrt(n) 处,可以大大节省时间。
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

int main() {
long long n;
while ( scanf("%lld", &n) && n > 0 ) {
for ( long long i = 2; i <= sqrt(n); i++) {
if ( n % i == 0 ) {
printf("    %lld\n", i);
n /= i;
i = 2;
}
}
printf("    %lld\n", n);
cout << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: