因子個數以及因子和

2021-09-26 14:06:58 字數 1720 閱讀 8516

高度可約的三角形數

三角形數數列是通過逐個加上自然數來生成的。例如,第7個三角形數是 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28。三角形數數列的前十項分別是:

1, 3, 6, 10, 15, 21, 28, 36, 45, 55, …

讓我們列舉出前七個三角形數的所有約數:

1: 1

3: 1,3

6: 1,2,3,6

10: 1,2,5,10

15: 1,3,5,15

21: 1,3,7,21

28: 1,2,4,7,14,28

我們可以看出,28是第乙個擁有超過5個約數的三角形數。

第乙個擁有超過500個約數的三角形數是多少?

最普通的做法就是用暴力列舉的辦法但是時間複雜度較大可以用線性篩進行變形來降低複雜度,下面解釋為什麼可以用線性篩來計算因子個數。首先可以知道任何正整數都可以分解成若干個素數相乘,那麼數字因子個數如下圖所示

例如72 = 2的3次方×3的2次方因此72的因子個數就是(3 + 1)×(2 + 1)= 12

另外我們要知道如果n和m互質(最大公約數是1)那麼f(n* m)= f(n) * f(m)如果n和m不互質會在下面**處解釋

#include

#define max_n 100000

int prime[max_n +5]

=;int f[max_n +5]

=;//f陣列記錄約數個數

int cnt[max_n +5]

=;//cnt主要是記錄i中prime[j]的次數例如prime[j] = 2 ,i =4那麼f[prime[j] * i] = (2 + 1)/( 2 + 1) * (2 + 2)

因子和因子個數

所有因子個數 n 與所有因子的和 n 都是乘 積 性函式。定義1 因子和函式 定義為整數n的所有正因子之和,記為 n 定義2 因子個數函式 定義為正整數n的所有正因子個數,記為 n 定理1 設p是乙個素數,a是乙個正整數,那麼 n 1 p p 2 p a p a 1 1 p 1 n a 1 定理2 ...

因子和與因子個數

摘抄於 acm icpc 程式設計系列數論及應用 基本理論 定義1 因子和函式 定義為整數n的所有正因子之和,記為 n 定義2 因子個數函式 定義為正整數n的所有正因子個數,記為 n 定理 定理1 如果f是積性函式f n 那麼f的和函式f n d n f d 也是積性函式 推論 因子和函式 與因子個...

求因子和與因子個數

求因子和與因子個數 包含1和本身 所有因子個數 n 與所有因子的和 n 都是乘 積 性函式。定義1 因子和函式 定義為整數n的所有正因子之和,記為 n 定義2 因子個數函式 定義為正整數n的所有正因子個數,記為 n 定理1 設p是乙個素數,a是乙個正整數,那麼 n 1 p p 2 p a p a 1...