1. 程式人生 > 其它 >實現素性測試、整數分解、約數列舉

實現素性測試、整數分解、約數列舉

技術標籤:ACM手寫模板

#pragma GCC optimize("O3")
#include<bits/stdc++.h>
using namespace std;
#define SET0(a) memset(a,0,sizeof(a))
#define FOR(i,a,b) for(int i=(a);i<=(b);i++)
#define DWN(i,a,b) for(int i=(a);i>=(b);i--)
#define INF 0x3f3f3f3f
typedef long long ll;
//實現素性測試、整數分解、約數列舉
bool is_prime(int x){
    for(int i=2;i*i<=x;i++){
        if(x%i==0) return false;
    }
    return x!=1;
}

vector<int> divisor(int x){
    vector<int> res;
    for(int i=2;i*i<=x;i++){
        if(x%i==0){
            res.push_back(i);
            if(x/i!=i) res.push_back(x/i);
        }
    }
    return res;
}

map<int ,int> prime_factor(int x){
    map<int ,int> res;
    for(int i=2;i*i<=x;i++){
        while(x%i==0){
            res[i]++;
            x/=i;
        }
    }
    if(x!=1) res[x]=1;
    return res;
}
int main(){
    
    return 0;
}