题意:求满足条件GCD(N,M) = N XOR M的M的个数

sol:和uva那题挺像的。若gcd(a,b)=a xor b=c,则b=a-c

暴力枚举N的所有约数K,令M=NxorK,再判断gcd(N,M)是不是等于K。

注意枚举约数时传统方法是O(N)的,会完蛋

有个O(sqrt(N))的方法:

注意一个性质:若n%i==0,则有n%(n/i)=0

所以可以这样:

for (int i=1;i*i<=N;i++)

  if (N%i==0)

  {

    //i是约数,N/i也是约数

    balabalabala...

  }

 #include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
using namespace std;
#define LL long long LL M,N;
LL ans[];
int TC=; long long gcd(long long a,long long b){
if(b == )return a;
return gcd(b,a%b);
} int main()
{
while (~scanf("%I64d",&N))
{
vector<LL> ans;
TC++;
int num=; //calculate all factors of N
/*
for (int c=1;c<=N-1;c++)
if (N%c==0)
{
M=N-c;
num++;
printf("%d %I64d\n",num,M);
ans[num]=M;
}
*/
/*
LL m=sqrt(N)+0.5;
for (LL i=1; i<m; i++)
if ( !(N%i) )
{
M=N-i;
num++;
ans[num]=M;
}
for (LL i=m; i>1; i--) //Шєn%i==0,дђгаn%(n/i)=0.
if ( !(N%i) )
{
M=N-(N/i);
num++;
ans[num]=M;
}
if (N==2)
{ num++; ans[num]=1; }
*/ for (LL i=;i*i<=N;i++) //若n%i==0,则有n%(n/i)=0
if (N%i==) //i , n/i
{
if(gcd(N,N^i) == i && (N^i) >= && (N^i) <= N)
ans.push_back(N^i);
if(i*i < N && gcd(N,N^(N/i)) == N/i && (N^(N/i)) >= && (N^(N/i)) <= N)
ans.push_back(N^(N/i)); //LL M1=N-i,M2=N-(N/i);
//if (gcd(N,M1)==N^M1) ans.push_back(M1);
//if (M1!=M2 && gcd(N,M2)=和=N^M2) ans.push_back(M2);
} sort(ans.begin(),ans.end());
printf("Case #%d:\n",TC);
printf("%d\n",ans.size());
for (int i=;i<ans.size();i++)
{
if (i>) printf(" ");
printf("%I64d",ans[i]);
}
printf("\n");
} return ;
}

hdu5175 gcd 求约数的更多相关文章

  1. GCD求最大公约数

    求最大公约数哪个强,果断GCD,非递归版本和递归版本如下: #include<iostream> using namespace std; int gcd(int a, int b){ / ...

  2. HDU 5211 筛法求约数

    给出n个数a1,a2...an,定义函数 f[i]=j,(i<j),表示aj mod ai=0 的最小j,其中j大于i,如果不存在这样的数,则f[i]=0 求n个数所有f[]值的和 先用筛法o( ...

  3. 礼物(中国剩余定理+拓展gcd求逆元+分治=拓展Lucus)

    礼物 题意: 求\[C(n,m)\ \%\ p\] \(n,m,p\le 10^9\),且若\(p=\prod_{i=1}^{k}{p_i}^{c_i}\),则\(\forall i\in [1..k ...

  4. 辗转相除法(GCD)求左旋转字符串

    本文写于2017-01-18,从老账号迁移到本账号,原文地址:https://www.cnblogs.com/huangweiyang/p/6297874.html 今天在牛客网上做了一道题,题意就是 ...

  5. [CodeForces-1036E] Covered Points 暴力 GCD 求交点

    题意: 在二维平面上给出n条不共线的线段,问这些线段总共覆盖到了多少个整数点 解法: 用GCD可求得一条线段覆盖了多少整数点,然后暴力枚举线段,求交点,对于相应的 整数交点,结果-1即可 #inclu ...

  6. 拓展gcd求不定方程通解

    void gcd(LL a,LL b,LL &d,LL &x,LL &y){ ){d=a;x=;y=;return;} gcd(b,a%b,d,x,y); int t=x; x ...

  7. 【算法基础】欧几里得gcd求最大公约数

    package Basic; import java.util.Scanner; public class Gcd { public static void main(String[] args) { ...

  8. SPOJ:NO GCD (求集合&秒啊)

    You are given N(1<=N<=100000) integers. Each integer is square free(meaning it has no divisor ...

  9. NYOJ-476谁是英雄,分解质因子求约数个数!

    谁是英雄 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 十个数学家(编号0-9)乘气球飞行在太平洋上空.当横越赤道时,他们决定庆祝一下这一壮举.于是他们开了一瓶香槟.不 ...

随机推荐

  1. Memcached的安装和使用以及nginx整合memcached

    一.模块的安装启动 wget http://cdnetworks-kr-2.d1.sourceforge.net/project/levent/libevent/libevent-2.0/libeve ...

  2. java:多线程基础之Runnable、Callable与Thread

    java.lang包下有二个非常有用的东西:Runnable接口与Thread类,Thread实现了Runnable接口(可以认为Thread是Runnable的子类),利用它们可以实现最基本的多线程 ...

  3. Java的注解(Annotation)

    1.什么是注解 Annotation is code about the code, that is metadata about the program itself. Java注解,是Java5. ...

  4. struts2 Result Type四个常用转跳类型

    Result的四个常用转跳类型分别为 Dispatcher 用来转向页面,是Struts的默认形式 Redirect   重定向到一个URL Chain  用来处理Action链 RedirectAc ...

  5. 我的 GitHub 100 连击

    终于达成 gayhub 的第一个100连击了,感觉自己整个人颜色都不一样了,完全蜕变了. PS: GitHub 汉化插件 52cik/github-hans 感兴趣的赶紧 get 起来吧. 遇到瓶颈 ...

  6. react实现的tab切换组件

    我有点想要吐槽,因为用原生的js实现起来挺简单的一个小东西,改用react来写却花了我不少时间,也许react的写法只有在复杂的web应用中才能体现出它的优势吧!不过吐槽归吐槽,对react这种优雅的 ...

  7. Learning jQuery, 4th Edition 勘误表

    来源于:http://book.learningjquery.com/3145/errata/ Chapter 1 page 14 The CSS snippet is correct, but it ...

  8. Spring 向页面传值以及接受页面传过来的参数的方式

    来源于:http://www.cnblogs.com/liuhongfeng/p/4802013.html 一.从页面接收参数 Spring MVC接收请求提交的参数值的几种方法: 使用HttpSer ...

  9. linux下部署项目问题

    1. 今天linux下部署thinkphp项目,数据库用的mysql. 页面其他都是正常的,但是从数据库中取出的数据都是乱码.最后查了资料 解决方案: 在ThinkPHP里面 Library\Thin ...

  10. Java设计模式(三) 装饰模式

    装饰模式:动态的将责任附加到对象上,想要扩展功能,装饰者提供有别于继承的另一种选择. 1,创建顶级类 package com.pattern.decorate; public abstract cla ...