HDU6069 篩法 有新技巧

2021-08-07 08:02:09 字數 760 閱讀 2837

題目鏈結

解題思路:這道題是這是暑假集訓我debug時間最長的一道題,從昨天下午到今天中午。剛開始的時候直接列舉的l-r之間的所有數的質因數,然後就tle了,後來我就看了一下題解,發現了一種優化方法,暴力的做法是把l-r每個數的質因數都找一遍,這樣比如l-r是1-8,4找過質因數2,6也找過質因數2,8也找過質因數2,效率不高。優化的方法是先把質數篩出來,然後去l-r中找所有含有該質因數,都除掉,這樣每個質因數只被找了一遍。

ac**(自己沒寫出來,參考了其他部落格)

#include

#include

#include

using namespace std;

const int maxn=1000001;

const int

mod=998244353;

int is_prime[maxn];

int prime[maxn];

long

long a[maxn];

long

long

sum[maxn];

void prime()}}

}int main()

for(i=1;i<=prime[0];i++)

sum[j-l]=(sum[j-l]*(k*num+1)%mod)%mod;}}

for(i=0;i<=r-l;i++)

printf("%lld\n",sum[r-l]);

}return

0;}

HDU 6069 素數篩法

思路 設 n p 1 p 2 p m n p 1 c 1 p 2 c 2 p m c m 則d n k kc 1 1 kc 2 1 kc m 1 d n c 1 1 c2 1 c m 1 則 d n k kc 1 1 kc 2 1 kc m 1 d n k kc 1 1 kc 2 1 k c m 1...

HDU6069 尤拉篩法 約數定理 計算技巧。

鏈結 首先先引入乙個數論概念,約數定理。約數定理 首先同上,n可以分解質因數 n p1a1 p2a2 p3a3 pkak,由約數定義可知p1a1的約數有 p10,p1 1,p12 p1a1 共 a1 1 個 同理p2a2的約數有 a2 1 個 pkak的約數有 ak 1 個。故根據乘法原理 n的約數...

hdu6069 素數篩法 2017多校4

對於 l r 內的每個數,根據唯一分解定理有 所以有 因為 可根據唯一分解定理推導 所以題目要求 就可以運用它到上述公式 注意不能暴力對l,r內的數乙個個分解算貢獻,而應該列舉l,r區間內質數的倍數 hdu6069 素數篩法 2017多校3 include using namespace std t...