#include <cstdio>
#include <cstring>
#include<iostream>
using namespace std;
const int maxx=45000;
int p;
int vis[maxx];
bool primes[maxx];
int k=0;
void prime(){//素数筛int i,j;memset(primes,true,sizeof(primes));for(i=2;i<maxx;i++){if(primes[i]){vis[k++]=i;for(j=2*i;j<maxx;j+=i){primes[j]=false;}}}
}int Euler_1(int n){//欧拉函数int res=n;for(int i=0;vis[i]*vis[i]<=n;i++){if(n%vis[i]==0){res=res/vis[i]*(vis[i]-1);while(n%vis[i]==0)  n/=vis[i];}}if(n>1)res=res/n*(n-1);return res%p;
}int pows(int a,int b){//快速幂int ans=1;a%=p;while(b){if(b&1){ans=(ans*a)%p;}b>>=1;a=(a*a)%p;}return ans;
}
int main(){int i,t,n,tot;prime();cin>>t;while(t--){tot=0;cin>>n>>p;for(int i=1;i*i<=n;i++){    if(i*i==n){tot=tot+pows(n,i-1)*Euler_1(i)%p;}else if(n%i==0){tot=(tot+pows(n,i-1)*Euler_1(n/i)+pows(n,n/i-1)*Euler_1(i))%p;}}cout<<tot%p<<endl;}return 0;
}

poj2154(Polya+欧拉函数优化模版)相关推荐

  1. poj2154Color polya定理+欧拉函数优化

    没想到贱贱的数据居然是错的..搞得我调了一中午+晚上一小时(哦不d飞LJH掉RP毕竟他是BUFF)结果重判就对了五次.. 回归正题,这题傻子都看得出是polya定理(如果你不是傻子就看这里),还没有翻 ...

  2. poj2154-color-polyan次二面体+欧拉函数优化

    N<=1e9,O(nlogn)的做法会超时.从枚举置换转变为枚举轮换长度,然后可以利用欧拉函数,把复杂度变为O(√n * logn) 1 /*-------------------------- ...

  3. 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )

    整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn​)) ②求[1,n]之间每个数的质因数 ...

  4. POJ2154(Pólya定理与欧拉函数优化)

    题目:Color 题意:将正n边形的n个顶点用n种颜色染色,问有多少种方案(答案mod p,且可由旋转互相得到的算一种) 先说说Pólya定理 设Q是n个对象的一个置换群,用m种颜色涂染这n个对象,一 ...

  5. hdu 1286 找新朋友 欧拉函数模版题

    找新朋友 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem Des ...

  6. [CF1603D] Artistic Partition——欧拉函数,线段树优化DP

    [CF1603D] Artistic Partition 题解 问题其实就是要你把 1 ∼ n 1\sim n 1∼n 分成 k k k 段,最小化每一段的 c c c 值的和. 首先我们会想到,如果 ...

  7. 线性筛法 与 线性求欧拉函数 的计算模板

    简介 懂得如何快速计算质数是十分重要的 在筛法的基础上,我们可以使用更为高级的线性筛法! 顾名思义,就是时间复杂度是线性的,即 O(N)O(N) ,N 为所求的质数范围 而对编程有所接触的人,应该都知 ...

  8. POJ - 2480 Longge's problem(欧拉函数+唯一分解定理)

    题目链接:点击查看 题目大意:给出一个n,求 题目分析:因为N到了二的三十二次方,所以直接暴力肯定会T,这里介绍两种方法,都可以做实现这个题目 首先我们需要转化一下这个题目,先说一下优化过后的暴力枚举 ...

  9. Euler:欧拉函数&素数筛

    一.欧拉函数 欧拉函数是小于x的整数中与x互质的数的个数,一般用φ(x)表示. 通式:   其中p1, p2--pn为x的所有质因数,x是不为0的整数. 比如x=12,拆成质因数为12=2*2*3, ...

最新文章

  1. 当定时任务遇上随机数
  2. pathview包绘制富集的kegg图
  3. SpringSecurity csrf验证忽略某些请求
  4. 动态二级下拉菜单html,js实现简洁大方的二级下拉菜单效果代码
  5. c语言 温探程序,学习第二天,再探C语言
  6. SQL自动检查神器,再也不用担心SQL出错了,自动补全、回滚等功能大全
  7. 线程池的使用以及其工具类的封装
  8. asp.net Coolite 学习
  9. 让VMware功能增強的三款辅助工具
  10. 大牛解密阿里云直播技术平台
  11. 邮箱不能发送大附件,什么邮箱可以发送超大附件?
  12. C++实验3个人所得税计算器
  13. 通过谷歌身份验证器实现双保险认证(1)
  14. STM32F7 硬件IIC驱动
  15. 高德地图的画图表,加文字,画线,测距
  16. 学习Linux/Unix这么久了,你真的知道什么是终端吗?
  17. 神舟笔记本(战神)摄像头或者相机不能使用的解决方法
  18. NC | 西湖大学鞠峰组在聚氯乙烯塑料微生物降解方向取得新突破
  19. 看雪安全接入KSA开放内测
  20. 21天,在Github上获取 6300 star

热门文章

  1. 多任务的介绍(并发、并行)
  2. 已知子网掩码如何计算IP地址中的主机位
  3. C语言中的typedef
  4. FineReport中如何用JavaScript自定义地图标签
  5. sys.stdout.write与sys.sterr.write(二)
  6. cdh4.6.0升级测试1
  7. leetcode001 two_Sum
  8. hive 修改分桶数 分桶表_Hive中的分桶
  9. HTML如何让图片覆盖背景颜色,css – 使用rgba背景颜色覆盖背景图像
  10. java内连接外连接_SQL中的内连接与外连接--Java学习网