分解质因数 模板

直接放板子了,我不太懂,但一直这么用来着:

//分解质因数
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <map>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn = 1e6 + 7;
ll n;
ll priA[maxn]; //分解质因数的各项

int main() {
    scanf("%I64d", &n);
    ll p = n;
    int t = 0;
    for(int i = 2; i <= sqrt(n); i++) {
        if(n % i == 0) {
            n /= i; t++; priA[t] = i; i--;
        }
    }
    priA[t + 1] = n;
    printf("%I64d = ", p);
    for(int i = 1; i <= t; i++) printf("%I64d * ", priA[i]);
    printf("%I64d\n", priA[t + 1]);
}

猜你喜欢

转载自blog.csdn.net/ericgipsy/article/details/80588221
今日推荐