题意:

给定n,a,求区间 [ 1 , 1<<n ] 的数b 满足 的个数

分析:打出暴力程序可以发现当a为奇数的时候结果为一;

当a为偶时 , a^b=2^(k+b)mod 2^n ; 结果肯定为0 ;

那就有b^a mod 2^n=0 ; 则 b也为偶数 ,在分析:

然后分类讨论 b <= n时暴力搞搞

b > n时 就需要满足 b^a % (2^n)等于0了

同理就要满足b^a = 2^a * k^a % (2^n)  = 0 那么假设k有x个2 使得(x + 1) * a >= n就好了

#include <stdio.h>
#include <algorithm>
#include <iostream>
using namespace std;
typedef long long ll; ll m;
ll pow_mod(ll x, ll y)
{
ll res = ;
while(y)
{
if(y & ) res = res * x % m;
y >>= ;
x = x * x % m;
}
return res;
} int main()
{
ll n, a;
while(~scanf("%lld%lld", &n, &a))
{
m = ( << n);
if(a & )
{
puts("");
continue;
}
else
{
ll ans = ;
for(int i = ; i <= n; i++)
{
ll o = pow_mod(a, i);
ll u = pow_mod(i, a);
if(o == u) ans++;
} if(a > n) ans += m / - n / ;
else
{
ll p;
if(n % a != ) p = n / a + ;
else p = n / a; p = (1LL << p);
ans += m / p - n / p;
}
printf("%lld\n", ans);
}
}
return ;
}

最新文章

  1. 【BZOJ1076】[SCOI2008]奖励关 状压DP+期望
  2. (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n!); (4)编写测试类E测试
  3. Linux下修改网卡IP、DNS和网关
  4. VMWare中安装CentOS6.6不能上网的解决办法
  5. hadoop 磁盘限额配置
  6. sql or 与and同时有时要注意
  7. 电源库(Sources)
  8. Zookeeper管理多个HBase集群
  9. DBUtils——handler
  10. (数字三角形)POJ1163 The Triangle
  11. 2018-2019-1 20189203《Linux内核原理与分析》第四周作业
  12. JOptionPane类提示框常用方法总结
  13. hdu5489 树状数组+dp
  14. pyqt 实现的俄罗斯方块
  15. 博客搬家到 http://leijun00.github.io
  16. 红黑树,TreeMap,插入操作
  17. Spark源码分析 &ndash; Checkpoint
  18. iOS开发:MKMapView地图内存持续增加的释放解决办法
  19. egg
  20. 机器学习算法( 二、K - 近邻算法)

热门文章

  1. php格式化时间戳显示友好的时间
  2. Django--form基础
  3. ASP.NET框架获取数据字典数据做成树的格式
  4. Java 正则表达式的实际应用
  5. (转)Linux环境进程间通信系列(五):共享内存
  6. FileUtils 文件下载 文件导出
  7. mysql5.6数据库双机热备、主从备份
  8. 百度离线地图API开发V2.0版本
  9. Vue生命周期函数
  10. EF Power Tools使用