求n的質因子

2021-08-28 11:27:54 字數 809 閱讀 4869

質因子(或質因數)在數論裡是指能整除給定正整數的質數。根據算術基本定理,不考慮排列順序的情況下,每個正整數都能夠以唯一的方式表示成它的質因數的乘積。兩個沒有共同質因子的正整數稱為互質。因為1沒有質因子,1與任何正整數(包括1本身)都是互質。只有乙個質因子的正整數為質數,質數的質因子就是它本身。

將乙個正整數表示成質因數乘積的過程和得到的表示結果叫做質因數分解。顯示質因數分解結果時,如果其中某個質因數出現了不止一次,可以用冪次的形式表示。例如360的質因數分解是:

其中的質因數2、3、5在360的質因數分解中的冪次分別是3,2,1。

數論中的不少函式與正整數的質因子有關,比如取值為n的質因數個數的函式和取值為n的質因數之和的函式。它們都是加性函式,但並非完全加性函式。

1沒有質因子。(1是empty product)

#include#include#include#include#include#includeusing namespace std;

const int mod=1e9+7;

typedef long long ll;

ll fac[1010];

void findfactor(ll x)//求x的質因子

}if(x>1) fac[++fac[0]]=x;

}ll phi(ll x)//求x的尤拉函式值

}if(x>1) res=res/x*(x-1);

return res;

}int main()

快速求n的質因子 數論

如何盡快地求出n的質因子呢?我們這裡又涉及兩個好的演算法了 第乙個 用於每次只能求出乙個數的質因子,適用於題目中給的n的個數不是很多,但是n又特別大的 includeint main if n 1 a num n for i 0 i第二個 一次求出1 n的所有數的質因子,適用於題目中給的n個數比較多...

求n個數 1 n 的質因子

求n個數 1 n 的質因子,我用到了素數篩選法的思想,例如找到素數2,2是2,4,6,8,10 的質因子,3是3,6,9,12 的質因子,然後找到素數5,若是求乙個數n的質因子,請參考 include includeint a 10001 20 b 10001 b i 表示第i個數的質因子個數,a ...

質因子 容斥原理求與n互質的個數

求乙個數的質因子,將質因子儲存在a,並返回質因子的個數 int init ll n if n 1 這裡要記得 a idx n return idx 1 求 1,m 內與n互質的個數,用佇列陣列實現容斥原理 ll fid ll m for ll i 1 i t i sum sum m que i re...