分解質因數 模板

直接放板子了,我不太懂,但一直這麼用來着:

//分解質因數
#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]);
}

發佈了84 篇原創文章 · 獲贊 11 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章