hdu 5175 Misaki's Kiss again (抑或运算+公式变形)
题意:找出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 (抑或运算+公式变形)相关推荐
- 【HDU 5765】Bonds(进制运算妙用)
[HDU 5765]Bonds(进制运算妙用) Bonds Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K ...
- Java执行字符串中的运算公式
在实现执行字符串中的运算公式时,采用了如下所示的代码: public static String StringfinalResult (String original) { try { String ...
- asp从后台调出的公式怎么参与运算_吴望一《流体力学》第一章中微分运算公式的初等证明...
本文中,矢量场均用箭头指示,例如 为矢量场, 为标量场. 本文只涉及吴望一<流体力学>第一章中所列的17条微分运算公式,不含积分运算公式. 先把所有公式一并列出,以便查找: 1. 2. 3 ...
- excel时间双击后公式才计算机,(excel为什么需要双击每个单元格以后才能运算公式?)excel表格双击后数据...
excel 单击表格无法输入数据双击后才可以输入数据为什么?请教高手? 按F2就解决啦 在给excel单元格设置格式后,为什么必须双击才会生效?如何才能让设置直接生效? Excel默认就是这样的,若需 ...
- js解析数学运算公式
js解析数学运算公式 已上传到npm,NPM包地址:https://www.npmjs.com/package/exec-mathexpress 示例demo //运行democonst execMa ...
- 用指数形母函数证明一个基本的指数运算公式
用指数形母函数证明一个基本的指数运算公式 证明e^x*e^y=e^(x+y): 在证明这个公式之前先证明一个较弱的公式: a(n)=1+a(1)/1!*x+a(2)/2!*x^2+a(3)/3!*x^ ...
- Python中的方根运算及对数运算公式
Python中的方根运算及对数运算公式 在Python中,我们可以使用math模块来进行方根及对数运算.下面是一些常用的代码示例: 计算平方根 使用math.sqrt(x)函数可以计算一个数的平方根. ...
- 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 ...
- c语言如何自定义运算公式,怎样用C语言编写数学公式 如何用C语言输入数学公式...
导航:网站首页 > 怎样用C语言编写数学公式 如何用C语言输入数学公式 怎样用C语言编写数学公式 如何用C语言输入数学公式 相关问题: 匿名网友: 1.C语言有现场的常用数学函数,所在函数库为m ...
最新文章
- 如何快速分辨一个男人是不是程序员
- python简单代码加法-CPython 源码中整数加法的实现
- SQL Server FOR XML PATH 语句的应用
- mysql 5.6.16 log_mysql-5.6.16装配脚本
- vscode自动格式化不符合eslint_VsCode(Visual Studio Code)格式化代码符合EsLint
- 由DB2分页想到的,关于JDBC ResultSet 处理大数据量
- owncloud 10.0 php,基于Linux云服务器CentOS 7上安装OwnCloud 10.0.8
- WebUtils-网络请求工具类
- 如何将松散的dll打包进需要发布的exe
- 硬盘检测神器-HD Tune Pro/Hard Disk Sentinel
- python里print字符串+字符串_python 字符串 和 print
- KVM地址翻译流程及EPT页表的建立过程
- 爱的魔力转圈圈-流水灯电路原理详解-PCB系列教程4-1
- 电源完整性(PI)概述
- kubekey搭建K8s集群与kubeSphere容器云管理平台实战
- ARM SMMUv3 architecture
- python银行家算法例题详解_攒人品之作-能考408大题的知识点整理(有两个知识点的补充)...
- 新监管新纪元 大浪淘沙始见金——“9·4”政策回顾·行业前瞻
- The Coder Vol.6:小程序有大事
- 果园机器人是什么文体_24课果园机器人
热门文章
- XDOJ PM2.5
- 山西应用科技学院计算机应用在哪个校区,山西应用科技学院有几个校区,哪个校区最好及各校区介绍...
- 第 2-3 课:流式布局组件详解(Flow、Wrap)
- 米赛尔java火_山地自行车推荐 这几款山地自行车值得入手
- 劲乐园合歌(幽灵圣典+飞吧喜鹊+唯一+v3+幽灵圣典2)1铃声 劲乐...
- linux内核时钟工作原理,需要学习并了解Linux时钟的原理及其应用
- vb怎样访问网络服务器的access数据库
- 历时三年,Filecoin 主网正式上线 | 一周问答热议
- Windows下使用cmake vscode搭建 C/C++开发调试环境
- 计算机科学报数学竞赛,(word)首届全校数学竞赛.doc