题意:找出1-n之间所有的m使得gcd(n,m) = n^m。

分析:令n^m = k,可以推出n^k = m,m^k = n。则由gcd(n,m) = n^m = k

可以推出 gcd(n,n^k) = k且k是n的约数。

故找出n的所有约数,判断是否满足gcd(n,n^k)=k即可。

n^k =0 要舍去,因为此时k = n,不满足gcd(n,n) = (n^n)。

而且抑或运算得到的数可能变大,如1^2 = 3,故要判断(n^k)<=n.

抑或运算要打括号。

发现抑或好神奇~

通过打表发现满足条件的数很少,而且都靠近n。

STL中set可以自动排序。

下面不是按照上面的思路写的~是打表琢磨出的

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<set>using namespace std;typedef long long ll;
set<ll> v;
set<ll>::iterator it;ll gcd(ll a,ll b)
{return b==0?a:gcd(b,a%b);
}int main()
{ll n,g,h1,h2;int cas=1;while(~scanf("%I64d",&n)){v.clear();for(ll i=1;i*i<=n;i++){if(n%i==0){g = n/i;h1 = (g-1)*i;h2 = (i-1)*g;if(h1!=0 && gcd(n,h1)==(n^h1))v.insert(h1);if(h2!=0 && gcd(n,h2)==(n^h2))v.insert(h2);}}int m = v.size(),c;printf("Case #%d:\n",cas++);printf("%d\n",m);if(m){for(it=v.begin(),c=1;it!=v.end();it++,c++){printf("%I64d",*it);if(c!=m) printf(" ");}}printf("\n");}return 0;
}

hdu 5175 Misaki's Kiss again (抑或运算+公式变形)相关推荐

  1. 【HDU 5765】Bonds(进制运算妙用)

    [HDU 5765]Bonds(进制运算妙用) Bonds Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K ...

  2. Java执行字符串中的运算公式

    在实现执行字符串中的运算公式时,采用了如下所示的代码: public static String StringfinalResult (String original) { try { String ...

  3. asp从后台调出的公式怎么参与运算_吴望一《流体力学》第一章中微分运算公式的初等证明...

    本文中,矢量场均用箭头指示,例如 为矢量场, 为标量场. 本文只涉及吴望一<流体力学>第一章中所列的17条微分运算公式,不含积分运算公式. 先把所有公式一并列出,以便查找: 1. 2. 3 ...

  4. excel时间双击后公式才计算机,(excel为什么需要双击每个单元格以后才能运算公式?)excel表格双击后数据...

    excel 单击表格无法输入数据双击后才可以输入数据为什么?请教高手? 按F2就解决啦 在给excel单元格设置格式后,为什么必须双击才会生效?如何才能让设置直接生效? Excel默认就是这样的,若需 ...

  5. js解析数学运算公式

    js解析数学运算公式 已上传到npm,NPM包地址:https://www.npmjs.com/package/exec-mathexpress 示例demo //运行democonst execMa ...

  6. 用指数形母函数证明一个基本的指数运算公式

    用指数形母函数证明一个基本的指数运算公式 证明e^x*e^y=e^(x+y): 在证明这个公式之前先证明一个较弱的公式: a(n)=1+a(1)/1!*x+a(2)/2!*x^2+a(3)/3!*x^ ...

  7. Python中的方根运算及对数运算公式

    Python中的方根运算及对数运算公式 在Python中,我们可以使用math模块来进行方根及对数运算.下面是一些常用的代码示例: 计算平方根 使用math.sqrt(x)函数可以计算一个数的平方根. ...

  8. lg相乘公式,lg指数函数运算法则,指数函数运算公式8个

    内容导航: Q1:对数函数的运算公式. 1.a^log(a)(b)=b 2.log(a)(a)=1 3.log(a)(MN)=log(a)(M)+log(a)(N); 4.log(a)(M÷N)=lo ...

  9. c语言如何自定义运算公式,怎样用C语言编写数学公式 如何用C语言输入数学公式...

    导航:网站首页 > 怎样用C语言编写数学公式 如何用C语言输入数学公式 怎样用C语言编写数学公式 如何用C语言输入数学公式 相关问题: 匿名网友: 1.C语言有现场的常用数学函数,所在函数库为m ...

最新文章

  1. D - Fliptile POJ - 3279(翻转问题)
  2. Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a cl
  3. Linux基础命令使用
  4. mysql分区有好处吗_mysql 分区有实用价值吗?
  5. 给大学生分享一下我的编程人生
  6. 进程调度 操作系统第二章知识点归纳总结
  7. C# html转mht
  8. SQL Server 索引基础知识(10)----Join 时的三种算法简介
  9. 利用swoole coroutine协程实现redis异步操作
  10. pip;python包管理工具
  11. 第四章——变换域处理方法
  12. mysql重复执行命令_mysql----------mysql的一些常用命令
  13. 推荐:class文件反编译工具Java Decomplier
  14. 计算机数字雨教程视频,股票配资火爆cmd什么意思(cmd命令数字雨)
  15. 智能家居内网服务器,手把手教你搭建自己的智能家居IOT系统
  16. C++中string类
  17. oracle lob类型和mysql text_OracleLob类型存储浅析
  18. 基于STM32和ESP8266的天气预报系统
  19. 也谈阻塞、非阻塞、同步、异步
  20. 关于vs新建项目时只有空白项

热门文章

  1. 电脑用摄像头 质量不错的几个型号 旧手机接电脑当摄像头 iriun webcam
  2. 评自主创新与自主实现
  3. Blazor 从入门到放弃
  4. 海赢科技分享速卖通账号开店注册认证介绍及常见问题解答
  5. 触动精灵获取某东代付的链接
  6. 华为云 两个手机 同步_HDC.Cloud | 技术探秘:华为云鲲鹏云手机何以公有云业界独家...
  7. MySQL8.0.11修改root密码
  8. 比菜鸟更进一步(1):Style文件和toolbar的使用
  9. unity Input
  10. layui:图片上传