關於整數的質因子分解和篩素數的分析

2021-06-25 19:04:02 字數 692 閱讀 2494

篩素數篩不到10000000

#include #include #include #include #include using namespace std;

#define n 1000000//12031230

int digit[n]; //記錄素因子

int num[n]; //記錄每個素因子個數

int c; //記錄素因子的個數

void divide(int n)

while(temp % i== 0)

}}typedef long long ll;

ll prime[n], nprime, factor[n], numfactor[n], ct;

bool isprime[n];

void makeprime() }}

}void makeprime2()

}}void divide2(ll n) }}

if(n != 1)

} int main()

執行結果:

於2014.11.26修正:線性篩素數應該從第乙個素數開始。

質因子的分解

1 所謂的質因子分解是指將乙個正整數n寫成乙個或多個質數的乘積的形式,例如 6 2 3,8 2 2 2.或者將其寫為指數形式,如 6 2 1 3 1,180 2 2 3 2 5 1 由於最後要歸結到若干不同指數的乘積,因此需要先將素數表列印出來。注意 1本身不是素數,因此他沒有質因子,一般就是討論大...

素數篩 唯一分解定理 質因子分解 逆元 尤拉篩

素數篩 n,q 1e6 如果暴力求素數 根號n 1000 1e9超時 nlogn預處理素數 o 1 q include using namespace std typedef long long ll typedef pair pll define mp make pair define pb pu...

素數表的獲取以及對整數進行質因子分解

1.求 0 maxn 之間所有素數構成的素數表 法一 判斷每個數是否為素數,如果是素數存入素數表,演算法複雜度為o n根號n 判斷整數n是否為素數,是素數則返回true bool isprime int n return true 求素數 const int maxn 100 int prime 1...