题意:找出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. 如何快速分辨一个男人是不是程序员
  2. python简单代码加法-CPython 源码中整数加法的实现
  3. SQL Server FOR XML PATH 语句的应用
  4. mysql 5.6.16 log_mysql-5.6.16装配脚本
  5. vscode自动格式化不符合eslint_VsCode(Visual Studio Code)格式化代码符合EsLint
  6. 由DB2分页想到的,关于JDBC ResultSet 处理大数据量
  7. owncloud 10.0 php,基于Linux云服务器CentOS 7上安装OwnCloud 10.0.8
  8. WebUtils-网络请求工具类
  9. 如何将松散的dll打包进需要发布的exe
  10. 硬盘检测神器-HD Tune Pro/Hard Disk Sentinel
  11. python里print字符串+字符串_python 字符串 和 print
  12. KVM地址翻译流程及EPT页表的建立过程
  13. 爱的魔力转圈圈-流水灯电路原理详解-PCB系列教程4-1
  14. 电源完整性(PI)概述
  15. kubekey搭建K8s集群与kubeSphere容器云管理平台实战
  16. ARM SMMUv3 architecture
  17. python银行家算法例题详解_攒人品之作-能考408大题的知识点整理(有两个知识点的补充)...
  18. 新监管新纪元 大浪淘沙始见金——“9·4”政策回顾·行业前瞻
  19. The Coder Vol.6:小程序有大事
  20. 果园机器人是什么文体_24课果园机器人

热门文章

  1. XDOJ PM2.5
  2. 山西应用科技学院计算机应用在哪个校区,山西应用科技学院有几个校区,哪个校区最好及各校区介绍...
  3. 第 2-3 课:流式布局组件详解(Flow、Wrap)
  4. 米赛尔java火_山地自行车推荐 这几款山地自行车值得入手
  5. 劲乐园合歌(幽灵圣典+飞吧喜鹊+唯一+v3+幽灵圣典2)1铃声 劲乐...
  6. linux内核时钟工作原理,需要学习并了解Linux时钟的原理及其应用
  7. vb怎样访问网络服务器的access数据库
  8. 历时三年,Filecoin 主网正式上线 | 一周问答热议
  9. Windows下使用cmake vscode搭建 C/C++开发调试环境
  10. 计算机科学报数学竞赛,(word)首届全校数学竞赛.doc