【jzoj4714】【公约数】【数论】
2016-09-06 17:07
246 查看
题目大意
给定一个正整数,在[1,n]的范围内,求出有多少个无序数对(a,b)满足gcd(a,b)=a xor b。
解题思路
可以发现当a>b时,gcd(a,b)<=a-b,a xor b>=a-b。所以当gcd(a,b)=a xor b时gcd(a,b)==a-b,a xor b==a-b。所以我们先可以强制使gcd(a,b)==a-b,即枚举gcd(a,b)=k,a=k*(i+1),b=k*i。再判断a xor b==a-b.
code
#include<set> #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> #define LF double #define LL long long #define fo(i,j,k) for(int i=j;i<=k;i++) #define fd(i,j,k) for(int i=j;i>=k;i--) using namespace std; int const maxn=100000,inf=2147483647; int n; int main(){ freopen("d.in","r",stdin); freopen("d.out","w",stdout); scanf("%d",&n);int ans=0; fo(c,1,n) fo(i,2,n/c){ ans+=(((c*i)^(c*(i-1)))==c); } printf("%d",ans); return 0; }
相关文章推荐
- [JZOJ 4714]【NOIP2016提高A组模拟8.19】公约数
- JZOJ4714公约数 找规律
- 【JZOJ 4714】公约数
- [数论]数论的基础知识——最大公约数、最小公倍数
- 【JZOJ5250】【GDOI2018模拟】质数(数论)
- 数论之大数取模和最大公约数
- 算法导论-----数论-----最大公约数
- acm杭电acm5974 A Simple Math Problem 数论(最大公约数最小公约数,解方程x )
- 数论(1):最大公约数和最小公倍数(Gcd&Lcm)
- (《数论及应用1.3》NEFU 116 两仪剑法(最小公倍数&&最大公约数))
- 数论基础之辗转相除法求最大公约数
- Jzoj5425 数论
- JZOJ 1349. 最大公约数 (Standard IO)
- [JZOJ5425]数论
- 【jzoj4919】【神炎皇】【数论】
- SRM遇到的一个数论技巧——最大公约数和最小公倍数的关系
- Beef McNuggets USACO 4.1(数论公约数问题+背包阵亡)
- 51nod 1040 最大公约数之和 | 数论
- (数论)最大公约数和最小公倍数问题
- (数论)最大公约数、最小公倍数、唯一分解定理