隐藏页面特效

U4704 函数

 

1|0U4704 函数


1|1题目背景


设gcd(a,b)为a和b的最大公约数,xor(a,b)为a异或b的结果。

最大公约数

异或

1|2题目描述


kkk总是把gcd写成xor。今天数学考试恰好出到了gcd(a,b)=?这样的题目,但是kkk全部理解成了xor(a,b)=?

幸好这是填空题,老师只看kkk的答案是否正确而不在意过程。于是kkk想知道,对于所有不超过N的正整数a和b(a>=b)有多少组(a,b)满足可以使kkk的答案是正确的?

1|3输入输出格式


输入格式:

 

一个整数N

 

输出格式:

 

输出(a,b)的组数

 

1|4输入输出样例


输入样例#1:
7
输出样例#1:
4

1|5说明


1<=N<=100000

题意:

问整数n以内,有多少对整数a、b满足(1≤b≤a)且gcd(a, b) = xor(a, b)

分析:

gcd和xor看起来风马牛不相及的运算,居然有一个比较"神奇"的结论:

设gcd(a, b) = xor(a, b) = c, 则 c = a - b

2|0这里


有比较严格的证明。

有了这个结论后,我们可以枚举约数c,然后枚举c的倍数a,再根据c = a - b计算b,检验b是否满足gcd(a, b) = xor(a, b)

100代码:

#include<cstdio> using namespace std; int n,ans; int main(){ scanf("%d",&n); for(int c=1;c<=n;c++){ for(int a=c*2;a<=n;a+=c){ int b=a-c; if((a^c)==b) ans++; } } printf("%d\n",ans); return 0; }

 


__EOF__

本文作者shenben
本文链接https://www.cnblogs.com/shenben/p/5883061.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   神犇(shenben)  阅读(167)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示