題目鏈結
解題思路:這道題是這是暑假集訓我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...