传送门

怎么说呢,一道不可多得的反演题吧,具体解释之后再补

 #include <bits/stdc++.h>
 using namespace std;
 #define rep(i,a,b) for(int i=a;i<=b;++i)
 typedef long long ll;
 ;
 ll mul(ll x,ll y,ll p) {
     x%=p; y%=p;
     return (x*y-(ll)((long double)x/p*y+0.5)*p+p)%p;
 }
 ll _pow(ll x,ll n,ll p) {
     ll ret=;
     ,x=mul(x,x,p)) ) ret=mul(ret,x,p);
     return ret;
 }
 ll tp[]={2LL,3LL,5LL,7LL,13LL,61LL};
 bool MR(ll n) {
     ) return false;
     rep(i,,) if(n==tp[i]) return true;
     rep(i,,) ) return false;
     rep(i,,) {
         ll tmp=n-;)) tmp>>=;
         ll s=_pow(tp[i],tmp,n);
         &&s!=&&tmp!=n-) tmp<<=,s=mul(s,s,n);
         &&!(tmp&)) return false;
     }
     return true;
 }
 ll PR(ll n,ll c) {
     ll i=,k=2LL,x,y; x=y=1LL+rand()%(n-);
     ) {
         x=(mul(x,x,n)+c)%n;
         ll d=__gcd((y-x+n)%n,n);
         &&d!=n) return d;
         if(x==y) return n;
         ;
     }
 }
 int op[maxn],len,cnt,T;
 ll n,P,K,ans,gt[maxn];
 inline void fct(ll n) {
     ) return;
     if(MR(n)){gt[++len]=n;return;}
     ll p=n;
     ;p==n;--c) p=PR(p,c);
     fct(p); fct(n/p);
 }
 ll fpow(ll x,ll n,ll p) {
     ll ret=;
     ,x=x*x%p)
         ) ret=ret*x%p;
     return ret;
 }
 ll g(ll n) {,P);}
 ll f(ll n) {?n%P:(n>>)%P;}
 inline void dfs(int dp,ll d,ll pro) {
     ) {
         )&&(d&)==) return;
         (ans+=1LL*g(n/d)*f(n/d)%P*pro%P)%=P;
         return;
     }
     dfs(dp+,d,pro); pro=1LL*pro*(+P-gt[dp]%P)%P;
     rep(i,,op[dp]) d*=gt[dp],dfs(dp+,d,pro);
 }
 int main() {
 #ifndef ONLINE_JUDGE
     freopen("25.in","r",stdin);
 #endif
     scanf();
     while(T--) {
         scanf("%lld%lld%lld",&n,&K,&P);K%=P;
         len=cnt=;++cnt;
         memset(gt,,,sizeof(op));
         fct(n);
         sort(gt+,gt++len);
         rep(i,,len) {
             ;
             ++op[cnt];
         }
         ans=;dfs(,1LL,1LL);printf("%lld\n",ans);
     }
     ;
 }

最新文章

  1. PMD宣传文案
  2. Objective-C面向对象(一)
  3. c#基础精华01(强调代码规范,虚方法,抽象方法,接口)
  4. 【斐波拉契+数论+同余】【ZOJ3707】Calculate Prime S
  5. tabbar动画切换
  6. 我JAVA修炼之路
  7. 浅谈ASP.NET配置文件加密
  8. 20175315 《Java程序设计》第6周学习总结
  9. [Java]如何制作一个WordCount-Plus的Plugin
  10. Game1---游戏设计
  11. 关于Kafka java consumer管理TCP连接的讨论
  12. [knowledge][dpdk] open data plane
  13. zipfile模块
  14. python面试一:python2与python3的区别一
  15. 使用 libvirt创建和管理KVM虚拟机
  16. WebApi使用swagger ui自动生成接口文档
  17. python基础===拆分字符串,和拼接字符串
  18. Hadoop(五)分布式集群中HDFS系统的各种角色
  19. Github 使用的Markdown语言
  20. 使用python进行汉语分词-乾颐堂

热门文章

  1. 03-nginx虚拟主机配置
  2. php 实现百度文库搭建
  3. 30-懒省事的小明(priority_queue)
  4. 单机配置tomcat 8 集群
  5. xgboost 完全调参指南
  6. fiddler抓包时显示Tunnel to......443
  7. struts2 、mybatis 、easyui 分页
  8. linq to sql 实现左(右)连接,那个方法是对的,该怎么处理
  9. C# web通信解决方案
  10. 今天遇到的传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确的解决方案