【NOIP2016提高A组模拟8.19】(雅礼联考day2)公约数
2016-08-19 16:31
489 查看
题目
给定一个正整数,在[1,n]的范围内,求出有多少个无序数对(a,b)满足gcd(a,b)=a xor b。分析
显然a=b是一定不满足,我们设a>b,
易得gcd(a,b)<=a-b、a xor b>=a-b
那么gcd(a,b)=a xor b=a-b
gcd(a, a xor c)=c,而c是a的约数
设a-b=c,我们枚举它
a=i*c。
那么就只用判断a xor c=a-c即可。
#include <cmath> #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <queue> const int maxlongint=2147483647; const int mo=1000000007; const int N=50005; using namespace std; int ans,n; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) for(int j=2;j<=n/i;j++) { int a=i*j; if((a^i)==(a-i)) ans++; } printf("%d",ans); }
相关文章推荐
- 【NOIP2016提高A组模拟8.19】(雅礼联考day2)树上路径
- {小结}NOIP2016提高A组模拟8.19(雅礼联考day2)
- 【NOIP2016提高A组模拟8.19】(雅礼联考day2)总结
- 【NOIP2016提高A组模拟8.17】(雅礼联考day1)Binary
- 【NOIP2016提高A组模拟8.17】(雅礼联考day1)Value
- 【NOIP2016提高A组模拟8.19】公约数
- 【NOIP2016提高A组模拟8.17】(雅礼联考day1)总结
- JZOJ.4714【NOIP2016提高A组模拟8.19】公约数
- 【NOIP2016提高A组模拟8.19】公约数
- 【NOIP2016提高A组模拟8.17】(雅礼联考day1)Matrix
- JZOJ 4714 【NOIP2016提高A组模拟8.19】公约数
- JZOJ 4715 【NOIP2016提高A组模拟8.19】树上路径
- [JZSC2016 Part 2] 【NOIP2016提高A组模拟8.19】总结
- 【NOIP2016提高A组模拟8.19】树上路径
- JZOJ.4715【NOIP2016提高A组模拟8.19】树上路径
- [JZOJ 4714]【NOIP2016提高A组模拟8.19】公约数
- 【JZOJ4715】【NOIP2016提高A组模拟8.19】树上路径
- 【JZOJ 4810】【NOIP2016提高组 五校联考1】道路规划
- JZOJ 4814. 【NOIP2016提高A组五校联考2】tree
- [JZSC2016 Part 2]【NOIP2016提高A组模拟8.12】总结