hdu 2879【留坑】
生活随笔
收集整理的這篇文章主要介紹了
hdu 2879【留坑】
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
看了題解,說(shuō)的都不太準(zhǔn)確,可能是積性函數(shù)是為莫比烏斯準(zhǔn)備的吧,莫比烏斯真的難
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 10000005; const int M = 1000005; bool prime[N]; int p[N]; int k; LL mod; void isprime() {k = 0;memset(prime,true,sizeof(prime));for(int i=2;i<N;i++){if(prime[i]){p[k++] = i;for(int j=i+i;j<N;j+=i)prime[j] = false;}} } LL quick_mod(LL a,LL b) {LL ans = 1;a %= mod;while(b){if(b&1){ans = ans * a % mod;b--;}b >>= 1;a = a * a % mod;}return ans; } int main() {int n,m,t;isprime();scanf("%d",&t);while(t--){scanf("%d%d",&n,&mod);LL cnt = 0;for(int i=0;i < k;i++){if(p[i] > n) break;cnt += n / p[i];}LL ans = quick_mod(2,cnt);printf("%I64d\n",ans);}return 0; }?
總結(jié)
以上是生活随笔為你收集整理的hdu 2879【留坑】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: hdu 1788 Chinese rem
- 下一篇: 【高斯消元板子】