zoukankan      html  css  js  c++  java
  • Jzoj4714 公约数

    给你n求gcd(i,j)=i xor j的对数(i,j<=n)

    这题看似反演,其实是一个结论题,code就150byte

    我们发现gcd(i,j)<=|i-j|<=i^j

    所以,我们要求的对数就是gcd(i,j)=i-j=i^j

    我们枚举i和它的倍数j=ki,那么显然,gcd(j,j-i)=i,所以只需要判断i^j=j-i即可

    很重要的一点!i^j要打括号!不要写成了i^j==j-i!

    #include<stdio.h>
    int main(){
    	int n,A=0; scanf("%d",&n);
    	for(int i=1;i<=n;++i)
    		for(int j=i<<1;j<=n;j+=i)
    			if((i^j)==j-i) ++A;
    	printf("%d
    ",A);
    }

  • 相关阅读:
    存储器
    存储器
    存储器
    计算机组成原理目录
    锁原理
    锁原理
    并发编程
    Java 算法
    Java 数据结构
    Java数据结构
  • 原文地址:https://www.cnblogs.com/Extended-Ash/p/7774366.html
Copyright © 2011-2022 走看看