UVA-10392 Factoring Large Numbers

    xiaoxiao2024-12-26  13

    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; }
    转载请注明原文地址: https://ju.6miu.com/read-1295023.html
    最新回复(0)